私はデーモン/サービス(milter-regex)を持っていますが、それは死にかけています。一時的(数ヶ月)しか使っていないのであまり気にしないのですが、死んだら再起動したいです。
これはinit.dスクリプトです。 'service milter-regexstart'など。initスクリプトは/etc/init.d/milter-regexにあります。
/ etc/inittabに何かがある場合、それが死ぬと自動的にリスポーンします。 initスクリプトもこれを行うことになっていますか、それともinittabに入れる必要がありますか?
古くなったsockファイルをクリーンアップしていないため、再起動に失敗する可能性があります。これは本日修正しますが、とにかく質問したいと思いました。
RHEL4で実行中(はい、古い)
ありがとう、ブロック
Init.dのスクリプトは、サービスがクラッシュしたときに自動的に再実行されません。実行を確実にするために最小限の作業を実行したい場合は、inittabが最善の策かもしれません。ただし、RHEL 4を実行しているのとほぼ同じくらい厄介です。
RHEL6についても非常によく似た問題を解決する必要がありました。 (さらに、1つのコマンドだけでなく、コマンドのパイプもありました。)/etc/init.d
スクリプトを使い続けたかったので、小さなツールを作成しました pipexec
:this子が終了し、/etc/init.d
スクリプトに簡単に統合できる場合は、子を再起動します。また、pidファイルの処理もサポートしています。
例:
$ pipexec -p /var/run/whatsoever.pid -s 5 -- /opt/bin/whatsoever
Pidファイルを作成し、/opt/bin/whatsoever
を実行します。 whatsoever
が異常終了した場合(信号など)、pipexec
は5秒間待機し、再起動します。
よろしく-アンドレアス