У меня есть два сценария PHP, выступающих в качестве потребителей RabbitMQ, и я хочу, чтобы они запускались и контролировались (+ автоматически перезапускались) через monit.
Мой / etc / monitrc для двух процессов выглядит так:
check process php-magento-category
matching "openerp:category:consumer"
start program = "/usr/bin/php /home/dev/magento/base/magento2/bin/magento openerp:category:consumer"
as uid cehrig and gid cehrig
check process php-magento-product
matching "openerp:product:consumer"
start program = "/usr/bin/php /home/dev/magento/base/magento2/bin/magento openerp:product:consumer"
as uid cehrig and gid cehrig
Фактически, monit запускает только первый из обоих процессов, благодаря чему ps fax выглядит так:
4622 ? Sl 0:00 monit
5036 ? Ss 0:00 \_ /usr/bin/php /home/dev/magento/base/magento2/bin/magento openerp:category:consumer
Второй процесс PHP никогда не запускается. Статус Monit выглядит так
Process 'php-magento-category'
status Initializing
monitoring status Initializing
monitoring mode active
on reboot start
data collected Tue, 10 Jan 2017 10:50:58
Process 'php-magento-product'
status Execution failed | Does not exist
monitoring status Monitored
monitoring mode active
on reboot start
data collected Tue, 10 Jan 2017 10:51:28
Может ли кто-нибудь указать мне правильное направление, как это исправить? Заранее спасибо.
Вы можете создать сценарий оболочки, который запускает нужные команды PHP, а затем вызывать сценарий оболочки из Monit.