Supervisord – как запустить PHP воркер?

Довольно часто встречаются ситуации, когда необходимо запускать PHP воркеры, слушающие определенный порт. В случае падения скрипта или перезагрузки бэенда, а иногда и сервера, воркер приходится запускать руками, что совсем неудобно и не совсем правильно.
Рекомендую пользоваться популярной утилитой: Supervisord, которая позволяет организовать работу фоновых PHP процессов. Рассмотрим настройку на практике.

Установка Supervisord на CentOS:

yum install supervisor -y
chkconfig supervisord on

Настройка Supervisord:

В файле конфигурации (/etc/supervisord.conf), можно не вносить никакие правки, обычно настроек по-умолчанию достаточно.
Создаем наш конфигурационный файл в подключенной директории: /etc/supervisord.d/

/etc/supervisord.d/php-queue-worker.ini
[program:worker]
command=/usr/bin/php /srv/www/application/push-server.php
numprocs=1
directory=/srv/www/application/
stdout_logfile=/var/log/supervisor/push-server.log
autostart=true
autorestart=true
user=apache
stopsignal=KILL

(далее…)