web-dev-qa-db-ja.com

/etc/init.d/script、または/ etc / inittab-ダイでリスポーン

私はデーモン/サービス(milter-regex)を持っていますが、それは死にかけています。一時的(数ヶ月)しか使っていないのであまり気にしないのですが、死んだら再起動したいです。

これはinit.dスクリプトです。 'service milter-regexstart'など。initスクリプトは/etc/init.d/milter-regexにあります。

/ etc/inittabに何かがある場合、それが死ぬと自動的にリスポーンします。 initスクリプトもこれを行うことになっていますか、それともinittabに入れる必要がありますか?

古くなったsockファイルをクリーンアップしていないため、再起動に失敗する可能性があります。これは本日修正しますが、とにかく質問したいと思いました。

RHEL4で実行中(はい、古い)

ありがとう、ブロック

2
Brock

Init.dのスクリプトは、サービスがクラッシュしたときに自動的に再実行されません。実行を確実にするために最小限の作業を実行したい場合は、inittabが最善の策かもしれません。ただし、RHEL 4を実行しているのとほぼ同じくらい厄介です。

1

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秒間待機し、再起動します。

よろしく-アンドレアス

2
Andreas Florath