CRONを使用してプロセスを開始および監視する

CRONを使用してプロセスを開始および監視する

C言語で書かれたスタブアプリケーションがあります。このアプリケーションを毎日11時30分などに定期的に実行したいとします。クローンプロセスですが、やり方が分かりません。助けてください。

また、私はクローンアプリケーションが正常に動作しているかどうかを定期的に確認します。アプリケーションがクラッシュしたりハングしたりした場合は、クローン一定時間内にアプリケーションを再起動できる必要があります。

答え1

Cron は、他のプロセスを監視するものではなく、スケジュールされた間隔でスケジュールされたタスクを実行するためのものです。

次のいずれかを行うことができます。

  • ホスト OS の init スクリプト システムなど、別のものを使用します。おそらく、inittab終了した場合に自動的に再起動するカスタム ジョブが組み込まれます。

  • または、定期的に実行されるシェル スクリプトの形式で何かをハックして、cron事前に決められた一連のチェックを使用してデーモン スクリプトが適切に実行されているかどうかをチェックし、適切に実行されていない場合はクリーンアップしてから再起動します。

答え2

crontabファイルにエントリを作成するだけです

$ crontab -e

終了したら、エントリーに従ってhttp://www.manpagez.com/man/5/crontab/

[email protected]
30 11 * * * /path/to/your/command

エントリを入力するとMAILTO、コマンドがSTDERRに出力を生成する場合にメールが届きます。

プロセスがハングしているかどうかを確認するのはより困難です。ハングとはどういう意味かを定義する必要があります。特定の時間を超えて実行されますか? 認識可能な動作が生成されますか?

いつでも 2 番目のプロセスまたはスクリプトを実行して、プロセスがまだ実行中かどうかを確認し、適切なアクションを実行できます。

答え3

クロニター(https://cronitor.io) は、まさにこの目的のために私が作成したツールです。基本的には、http リクエストを使用して cron ジョブ/スケジュールされたタスクの開始と終了を記録する追跡ビーコンになります。

Cronitorを使用する利点の1つは、追跡リクエストをスクリプト化する柔軟性があり、失敗を即座に報告する呼び出しを行うことさえできることです。この柔軟性により、失敗を報告するアプリケーションのラッパーを作成することもできます。そして失敗した場合はスクリプトの再起動を試みます。

関連情報