ネットワーク接続を監視する Ruby プログラムを起動するための、非常に単純なラッパー スクリプトを用意しました。スクリプトはルーター上にあるため、bash ではなく ash を使用しています。
monit を使用してステータスを監視しているため、PID ファイルが必要です。問題は、ラッパーによって設定されたプロセス ID が ruby プログラムよりも 1 つ小さいことです。
したがって、Monit は数百のプロセスにまたがっています。ラッパーに ruby プログラムを起動させ、正しい pidfile を作成させるにはどうすればよいですか?
私のラッパーは次のようになります。
#!/bin/sh /etc/rc.common
start(){
echo $$ > /var/run/ping.pid
ruby /etc/scripts/ping.rb & > /dev/null 2>&1
}
stop(){
kill `cat /var/run/ping.pid`
}