Страница 1 из 1

Запуск mariadb после asterisk ломает запуск службы asterisk

Добавлено: 18 ноя 2023, 10:54
cyjil
Добрый день. У меня в какой-то момент перестал записываться CDR. После перезагрузки решалось путем перезапуска модуля CDR, т.е. это нужно было делать руками после каждого ребута сервера. Наконец дошли руки сесть и попробовать разобраться.
Подумал я, что может стоит изменить параметры инициализации systemd таким образом, чтобы mariadb запускалась уже после asterisk. Так и сделал:
systemctl edit --full mariadb
Добавил
After=asterisk.service.
Делаю ребут, захожу в freepbx и вижу что УРА! CDR записывается. Однако, меня смутил тот факт, что астериск уж больно долго запускался.
Захожу обратно в консоль, systemctl status asterisk. Вижу - служба лежит.

systemctl status freepbx:
Nov 18 10:34:51 Server-PBX runuser[3311]: pam_unix(runuser:session): session closed for user asterisk
Nov 18 10:34:51 Server-PBX runuser[3328]: pam_unix(runuser:session): session opened for user asterisk by (uid=0)
Nov 18 10:34:52 Server-PBX runuser[3328]: pam_unix(runuser:session): session closed for user asterisk
Nov 18 10:34:52 Server-PBX fwconsole[1509]: [>---------------------------] < 1 sec
Nov 18 10:34:52 Server-PBX runuser[3338]: pam_unix(runuser:session): session opened for user asterisk by (uid=0)
Nov 18 10:34:52 Server-PBX runuser[3338]: pam_unix(runuser:session): session closed for user asterisk
Nov 18 10:34:52 Server-PBX runuser[3348]: pam_unix(runuser:session): session opened for user asterisk by (uid=0)
Nov 18 10:34:53 Server-PBX runuser[3348]: pam_unix(runuser:session): session closed for user asterisk

Службу asterisk можно вручную стартануть без проблем и в принципе, ничего не изменится, все как работало, так и работает.
Во первых я не понимаю как астериск работает при том, что служба не запущена. А во вторых я не понимаю из-за чего конкретно она перестает запускаться.
Еще один ключевой момент - если вернуть параметры запуска mariadb к первоначальному виде проблема не устраняется.

Re: Запуск mariadb после asterisk ломает запуск службы aster

Добавлено: 18 ноя 2023, 19:08
ded
Просто так само собой всё не случается. В новых версиях для CDR вместо прямого модуля cdr_mysql.so начали использовать подключение MSQL к базе asteriskcdrdb через ODBC.
res_config_odbc.so
res_odbc.so
cdr_adaptive_odbc.so
cdr_odbc.so
Найдите примеры, инструкцию, и выполните.
cyjil писал(а):Во первых я не понимаю как астериск работает при том, что служба не запущена.
Ответ увидите в выхлопе
ps auxwf | grep asterisk

Есть несколько способов запуска Астериск, некоторые из них взаимно противоречат друг-другу. Старый, безопасный, эпохи до sysmed - запуск скрипта safe_asterisk, который переподнимает Астериск если тот падает.
В версиях FreePBX разработали универсальную командную оболочку, которая не только запускает/останавливает Астериск, но и много других сервисных действий

Код: Выделить всё

# fwconsole list
 ______             _____  ______   __
|  ____|           |  __ \|  _ \ \ / /
| |__ _ __ ___  ___| |__) | |_) \ V /
|  __| '__/ _ \/ _ \  ___/|  _ < > <
| |  | | |  __/  __/ |    | |_) / . \
|_|  |_|  \___|\___|_|    |____/_/ \_\
FW Console - FreePBX Utility version 13.0.197.21

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  _completion   BASH completion hook.
  bi            This command is used to import extensions and dids
  bulkimport    This command is used to import extensions and dids
  chown         Change ownership of files
  context       Shows the specified context from the dialplan
  cx            Shows the specified context from the dialplan
  dbug          Stream files for debugging
  debug         Stream files for debugging
  doctrine      Run a doctrine commands
  externalip    Get External IP
  extip         Get External IP
  genunlockkey  Return key to unlock session remotely
  help          Displays help for a command
  list          Lists commands
  m             Run a mysql Query:
  ma            Module Administration
  moduleadmin   Module Administration
  motd          Prints MOTD
  mysql         Run a mysql Query:
  notification  Manage notifications
  r             Reload Configs
  reload        Reload Configs
  restart       Start Asterisk and run other needed FreePBX commands
  session       Manage Session
  set           View and update settings
  setting       View and update settings
  sounds        Sound Language Prompts
  start         Start Asterisk and run other needed FreePBX commands
  stop          Stop Asterisk and run other needed FreePBX commands
  trunks        Enable and disable trunks from the command line
  unlock        Unlock Session
  userman       User Manager
  util          Common utilities
  validate      Validate your PBX against potential hacks
Если нет FreePBX, то модуль запуска systemd asterisk.service можно переписать под safe_asterisk.