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