cronデーモンがまだ実行されていることを確認してください。

cronデーモンがまだ実行されていることを確認してください。

もしDebian 7ホストされたVMと最新のcronデーモンで実行されているサーバー(gasp)にバグがあるため、クローンが明確な理由なく実行を停止します。これは一度だけ発生するため、デバッグが困難です。

クローンが再びクラッシュして電子メール警告を送信した場合、クローンが自動的に再起動されるようにするにはどうすればよいですか?

答え1

いつでも確認できます監視装置プロジェクト。
サービスを再起動して追いつくことができます。
コメントで提案されているようにクローンを変更できない場合。

答え2

プロセスを監視して再起動するためにdaemontoolsのようなプログラムを実行することはできませんか?

実際、一部のコンピュータではそうします。 「daemontoolsに似たもの」は実際にスナックバッグしかし、daemontoolsファミリーの他のメンバーはGNUクローンを完全に管理できます。 (Vixie cronは別の話ですが、Debianを意味しています。)

GNU cronは、daemontoolsサービススイートの管理下で実行される最も単純なサービスの1つです。 Gerrit Papeの実行スクリプトコレクションには、noshツールセットに付属のサービスバンドルコレクションも含まれています。

つまり、GNU cronを再起動しなければならなかった記憶はありません。墜落したから

最も重要なのは、サービス管理が単に自動的に再起動する以上のことです。これは返品ロギングとリソース制御に関して、両方ともタスク関連です。原因診断GNUクローンがクラッシュします。

問題の診断には以下が含まれます。

  • コアダンプを有効にするrunために使用されるプログラムを編集します。softlimit
  • スクリプト(またはそれに対応する項目)の編集restart...
    • ...デーモンが終了したか、または信号を介して終了したかどうかを確認します。
    • ...コアダンプを収集します。
    • ...警告を出し、電子メール通知を送信します。 (私はrestart衝突/中断の最後の数行を私に電子メールで送信するスクリプトを設定したことがあります。)log/main/current
    • ...再起動速度制限を調整します。
  • GNU cronの別々のログとサービスマネージャの独自のログを読んで、デーモンが再起動される時期と頻度、出力されるエラーメッセージ(存在する場合)を確認してください。

追加読書

答え3

crond私を通しては監視できないので、次のようcrondにします。
echo "while true; do if ! (ps aux |grep crond |grep -v grep); then /etc/init.d/crond start; fi && sleep 5; done &" >> /etc/rc.local

答え4

daemontools、などを設置する必要はありませんrunitsuperviseこれらのツールは便利ですが、通常はcronだけを使用する必要がないユースケースをカバーしています。必要なものだけが必要で、initで簡単に処理できます。 /etc/inittabに追加:

cron:2345:respawn:/usr/sbin/crond -n

crondまず、その-nオプションがサポートされていることを確認してください。これは、分岐せずに前景に留まらないように指示します。 ** rcスクリプトでcrondを無効にする必要があります**。

/usr/lib/lsb/remove_initd /etc/init.d/crond

何らかの理由でcrondがstdoutまたはstderrとして出力する場合は、その出力を処理してラッパースクリプトを生成するラッパースクリプトを作成する必要があります。スクリプトを単純に保ちます。

#!/bin/sh
#crond-wrapper.sh 
exec crond -n &>>/var/log/crond

あるいは、whileループ内で呼び出されるスクリプトを使用してinit.d/crond既存のパッケージングスクリプトを変更できます。crond -nただし、この場合は、pid後で使用するためにスクリプトを賢く保存する必要があります。

関連情報