x分ごとにプログラムを再起動しますか?


10

オープンソースライブラリを使用するマルチスレッド化されたJavaプログラムがあり、このライブラリにはいくつかのバグがあり、デッドロックを引き起こします。バグを報告しましたが、修正に時間がかかるので、このプログラムを使い続ける必要があります。 2〜3時間ごとに再起動します。プログラムをx分ごとに再起動する方法はありますか?


3
2〜3時間ごとにタスクを強制終了して再起動するスクリプトを作成できます。
gt6989b 2012年

@ gt6989bをフォローアップするために、単純にループして2〜3時間経過するまで待機してからプログラムを再起動するPythonスクリプトを記述します。Python サブプロセスshモジュールが役に立つかもしれません。
画期的な

回答:


12

あなたはあなたの中でやってみることができますcrontab

crontab -e

その後

 11 */3 * * * /usr/bin/pkill -f appli_name; /path/to/appli_name & &>/dev/null

crontabコマンドの平均:

  • 3時間ごと
  • appli_nameを終了します
  • バックグラウンドでappli_nameを開始します

これが、現在私が同様の問題を解決している方法です。特定のソフトウェアを毎晩0:00にcron経由で再起動します。ソフトウェアは4〜5日後に状態ファイルを破損する傾向があるためです。ソフトウェアをサービスとしてインストールし、必要なときに実行service <appname> restart > /dev/null 2>&1しました。
Daniel Andersson、

2

タスクに合わせてスーパーバイザーを構成することをお勧めします。プロセスを監視し、失敗した場合は再起動し、出力のリダイレクトやその他の優れた機能も提供します。開始するプログラム例を参照してください。


+1、これはcrontab(どちらのソリューションも問題なく動作しますが)対照的に、より「クリーン」なソリューションのようです。ただし、どのシグナルをいつ送信するか(つまり、いつ送信SIGTERMするか、および送信前に待機する時間SIGKILLなど)を構成するのは、Supervisorの方が優れていると思います。
画期的な
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.