supervisorне является cron!

supervisorне является cron!

Я пытаюсь запустить команду ниже в фоновом режиме, используя supervisord:

php /home/instacheeta/artisan queue:work --timeout=120

После установки службы Supervisor на моем сервере, определения ее конфигурации и запуска в базе данных не произошло никаких изменений, указывающих на то, что Supervisor запускает PHP-приложение.

Конфигурация моего супервизора:

[program:instacheeta]
process_name=%(program_name)s_%(process_num)s
command=php /home/instacheeta/artisan queue:work --timeout=120
autostart=true
autorestart=true
numprocs=1
redirect_stderr=true
stdout_logfile=/home/instacheeta/worker.log

queue:workсрабатывает после cronjobкаждой минуты работы и работает до конца.

cronjobработает отлично; я проверил это в своей базе данных, чтобы убедиться, что новые данные сохраняются каждую минуту. К сожалению, супервизор, похоже, не запускает определенную команду.

Я не получаю никаких ошибок на worker.log. Другая информация для устранения неполадок:

[root@host instacheeta]# ps aux|grep supervisor
root      3267  0.0  0.2 219784 12992 ?        Ss   11:47   0:02 /usr/bin/python /usr/bin/supervisord
root     18279  0.0  0.0 112680   948 pts/0    S+   14:38   0:00 grep --color=auto supervisor

Не удалось добавить программу в supervisorctl:

[root@host instacheeta]# supervisorctl add instacheeta
ERROR: no such process/group: instacheeta

Статус руководителя:

[root@host instacheeta]# supervisorctl status
[root@host instacheeta]#

решение1

Необходимо перезагрузить конфигурацию супервизора.

Для этого есть два способа:

  1. Перезапустите supervisorслужбу с помощью serviceинструмента ( service supervisor restart). Это вызовет все контролируемые процессы, но поскольку в данный момент у вас нет запущенных таких процессов, это не проблема.

  2. Попросите supervisorдемона динамически перезагрузить его конфигурацию из файлов конфигурации. Запустите supervisorctl rereadс последующим supervisorctl updateобновлением конфигурации. Теперь вы можете использовать startдля запуска программы или statusпросмотра ее статуса.


supervisorне является cron!

В своем вопросе вы утверждаете:

cronjobработает отлично; я проверил это в своей базе данных, чтобы убедиться, что новые данные сохраняются каждую минуту. К сожалению, супервизор, похоже, не запускает определенную команду.

Имейте в виду, что если ранее у вас был cronjob, который вызывал команду в регулярном цикле, то он supervisorне будет делать этого без внешнего вмешательства или если только программа не завершит работу после завершения работы. Supervisor обычно предназначен для вызова двоичных файлов, предоставления службы и продолжения работы после запуска.

Я бы рекомендовал изменить приложение так, чтобы оно запускалось один раз и имело внутренний график, по которому оно выполняет все необходимые действия с базой данных.

Связанный контент