私はいくつかのプロセスを監視するためにmonitを使用しています。これらのプロセスには、パッセンジャー インスタンスと、パッセンジャー インスタンスの pidfile を生成するために私が作成したデーモンが含まれます。Monit はこれらのプロセスを問題なく開始します。それは彼らを止めません。以下は、デーモンの Monit 構成です。
check process passenger_monitor with pidfile <%= passenger_monitor_pid %>
group <%= application %>
start program = "/bin/su - rails_apps -c 'source /home/rails_apps/.rvm/scripts/rvm; /home/rails_apps/passenger_monitor.rb'"
stop program = "/bin/kill `/bin/cat <%= passenger_monitor_pid %>`"
capistrano 経由で生成される erb テンプレートです。最小限の環境でルートとしてターミナル経由で停止コマンドを実行すると機能しますが、Monit にプロセスの停止を要求すると、次のエラーが発生します。
[ADT Sep 17 10:38:31] error : 'passenger_monitor' failed to stop
考えられることはすべて試しました。stop コマンドの出力のログが見つからないか、生成されません。