1
我正在部署一個帶有sidekiq的rails應用程序。在每個部署Capistrano停止以前的運行版本的sidekiq(一個紅寶石進程),然後啓動一個新的。我用monit監控sidekiq pid文件。如何配置monit以允許更改pid?
問題:每次我部署pid文件更改但monit檢測到它已更改並重新啓動進程。在幾天和多次發佈期間,當我只需要一個版本時,我會得到多個sidekiq實例。
這裏是我的sidekiq monit的配置:
check process sidekiq_main with pidfile /srv/apps/orders/current/tmp/pids/sidekiq.pid
every 3 cycles
start program = "/bin/bash -c -l 'cd /srv/apps/orders/current ; nohup bundle exec sidekiq -e production -C /srv/apps/orders/current/config/sidekiq.yml -i 0 -P /srv/apps/orders/current/tmp/pids/sidekiq.pid >> /srv/apps/orders/current/log/sidekiq.log 2>&1 &'"
stop program = "/bin/bash -c -l 'cd /srv/apps/orders/current ; bundle exec sidekiqctl stop /srv/apps/orders/current/tmp/pids/sidekiq.pid 10'"
group sidekiq
是否有配置的monit允許pid文件改變,只確保一個sidekiq實例正在運行的方法嗎?