Я настраиваю супервизора для постоянного запуска нескольких скриптов.
Если я запускаю супервизор без какой-либо программы (файл *.conf в /etc/supervisor/conf.d), он работает отлично
root@networking:~# systemctl перезапустить супервизор
root@networking:~# supervisorctl
руководитель>
Файл конфигурации ниже:
; конфигурационный файл супервизора
[unix_http_сервер]
файл=/var/run/supervisor.sock ; (путь к файлу сокета)
chmod=0700 ; режим файла socketef (по умолчанию 0700)
[руководитель]
logfile=/var/log/supervisor/supervisord.log ; (главный файл журнала; по умолчанию $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile; supervisord.pid по умолчанию)
childlogdir=/var/log/supervisor ; (директория дочернего журнала 'AUTO', по умолчанию $TEMP)
; приведенный ниже раздел должен оставаться в файле конфигурации для RPC.
; (supervisorctl/веб-интерфейс), дополнительные интерфейсы могут быть
; добавлено путем определения их в отдельных разделах rpcinterface:
[rpcinterface: супервизор]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[inet_http_сервер]
порт=*:9001
имя пользователя = foo
пароль=бар
[супервизорктл]
serverurl=unix:///var/run/supervisor.sock ; используйте URL-адрес unix:// для сокета unix
; Раздел [include] может содержать только параметр «файлы». Этот
; параметр может отображать несколько файлов (разделенных пробелом или
; новые строки). Он также может содержать подстановочные знаки. Имена файлов
; интерпретируется как относящийся к этому файлу. Включенные файлы *не могут*
; включить сами файлы.
[включать]
файлы = /etc/supervisor/conf.d/*.conf
Я также вижу экран веб-интерфейса, как показано ниже:
Файл журнала показывает:
2022-03-25 22:21:47,391 CRIT Supervisor работает от имени пользователя root. Привилегии не были удалены, поскольку в файле конфигурации не указан пользователь. Если вы собираетесь работать от имени root, вы можете установить user=root в файле конфигурации, чтобы избежать появления этого сообщения.
2022-03-25 22:21:47,391 ПРЕДУПРЕЖДЕНИЕ Нет совпадений файлов через include "/etc/supervisor/conf.d/*.conf"
2022-03-25 22:21:47,399 ИНФОРМАЦИЯ "Супервизор" интерфейса RPC инициализирован
2022-03-25 22:21:47,400 INFO Инициализирован «супервизор» интерфейса RPC
2022-03-25 22:21:47,400 Сервер CRIT 'unix_http_server' работает без какой-либо проверки аутентификации HTTP
2022-03-25 22:21:47,400 INFO супервизор начался с pid 39887
Однако, если я добавлю файл программы в /etc/supervisor/conf.d/ez_send_email.conf
[программа:ez_send_email]
command=php /var/www/html/ez/index.php рабочий процесс_email_queue
пользователь=корень
автозапуск = правда
автоматический перезапуск = истина
начальные секунды=5
stdout_logfile=/var/log/supervisord/ez_send_email_output.log
stdout_logfile_maxbytes=10 МБ
stderr_logfile=/var/log/supervisord/ez_send_email_error.log
stderr_logfile_maxbytes=10 МБ
Я получаю следующий вывод при запуске supervisorctl
root@networking:~# systemctl перезапустить супервизор
root@networking:~# supervisorctl
unix:///var/run/supervisor.sock такого файла нет
руководитель>
Кроме того, веб-интерфейс показывает:
В лог-файле тоже ничего нет. Я также пытался изменить пользователь=корень пользователю без полномочий root, но это тоже не работает.
Запуск команды вручную
php /var/www/html/ez/index.php рабочий процесс_email_queue
тоже нормально работает. Так что проблем с командованием не возникает.
Любая помощь могла бы быть полезна.