다음을 통해 모니터링할 프로세스를 추가하려고 합니다 monit
.
check process sidekiq_worker_flow with pidfile /home/flio/apps/stage-flow/current/tmp/pids/sidekiq-1.pid
start program = "cd /home/flio/apps/stage-flow/current && source /etc/profile.d/rbenv.sh && bundle exec sidekiq -i 1 -e staging --pidfile /home/flio/apps/stage-flow/current/tmp/pids/sidekiq-1.pid --logfile /home/flio/apps/stage-flow/shared/log/sidekiq-1.log --daemon" as uid flio
stop program = "cd /home/flio/apps/stage-flow/current && bundle exec sidekiqctl stop /home/flio/apps/stage-flow/current/tmp/pids/sidekiq-1.pid 10" as uid flio
if 5 restarts within 15 cycles then timeout
일부 디버그 명령(echo 'bla bla' > ~/monint_debug.log')을 호출하려고 시도했지만 아무것도 얻지 못하기 때문에 "프로그램 시작"에 대한 명령이 호출되지 않은 것 같습니다. 또한 루트에서 명령을 실행하여 수동으로 시작하고 중지했는데 제대로 작동했습니다. 또 다른 유사한 스크립트가 있습니다.
check process sidekiq_worker_2
with pidfile /var/www/flio/current/tmp/pids/sidekiq-1.pid
start program = "/bin/su -lc 'cd /var/www/flio/current && source /etc/profile.d/rbenv.sh && bundle exec sidekiq -i 1 -e production --pidfile /var/www/flio/current/tmp/pids/sidekiq-1.pid --logfile /var/www/flio/shared/log/sidekiq-1.log --daemon -C /var/www/flio/current/config/sidekiq_2.yml' flio"
stop program = "/bin/su -lc 'cd /var/www/flio/current && bundle exec sidekiqctl stop /var/www/flio/current/tmp/pids/sidekiq-1.pid 10' flio"
if 5 restarts within 15 cycles then timeout
그리고 그것은 훌륭하게 작동합니다.