Я настроил monit для отслеживания задания производственной версии моего приложения:
# in /etc/monitrc:
include /etc/monit/delayed_job.my_app.production.monitrc
# in /etc/monit/delayed_job.my_app.production.monitrc
check process delayed_job with pidfile /var/www/apps/myapp_production/shared/pids/delayed_job.pid
start program = "/var/www/apps/myapp_production/current/script/delayed_job -e production start"
stop program = "/var/www/apps/myapp_production/current/script/delayed_job -e production stop"
Я хотел бы также отслеживать промежуточную версию на том же самом ящике, но я не могу понять, разрешено ли то, что я хочу делать. Моей первой мыслью было просто сделать gsub/production/staging
:
# in /etc/monitrc:
include /etc/monit/delayed_job.my_app.staging.monitrc
# in /etc/monit/delayed_job.my_app.staging.monitrc:
check process delayed_job with pidfile /var/www/apps/myapp_staging/shared/pids/delayed_job.pid
start program = "/var/www/apps/myapp_staging/current/script/delayed_job -e staging start"
stop program = "/var/www/apps/myapp_staging/current/script/delayed_job -e staging stop"
Но теперь у меня есть два процесса с именем «delayed_job». Как я могу сказать monit, какой запускать, а какой останавливать? Я хочу сделать что-то вроде
monit start delayed_job.production
но я думаю, что имя процесса должно быть фактическим именем процесса, которое определяется именем скрипта.
Не знаю monit (фактически никогда не пользовался). Может быть, я немного наивен, но если вы уже передаете pid процесса в файл, нет причин использовать ваше имя процесса.
Это приведет к такому простому объявлению, как:
check process delayed_job.production with pidfile ...
Вы уже пробовали?