sidekiq を使用して Rails アプリをデプロイしています。デプロイのたびに、Capistrano は以前に実行されていたバージョンの sidekiq (Ruby プロセス) を停止してから、新しいバージョンを開始します。sidekiq pid ファイルを monit で監視しています。
問題: pid ファイルをデプロイするたびに変更されますが、monit はファイルが変更されたことを検出し、プロセスを再起動します。数日間の期間と複数のリリースで、必要な sidekiq インスタンスが 1 つだけになってしまいます。
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
pid ファイルの変更を許可し、sidekiq インスタンスが実行されていることのみを確認するように monit を構成する方法はありますか?