1

私は現在、Linux 上で動作する実行可能ファイルを開発しています。この実行可能ファイルを監視し、強制終了されたものを再起動するスーパーバイザーが必要です。そうするためのコマンドはありますか?または、それを行う方法を提案してください

注: コードは c++ です

4

3 に答える 3

1

このスーパーバイザーは既に存在し、常に実行されています。と呼ばれinit、ほとんどのバージョンは のエントリによって制御されます/etc/inittab

于 2012-07-20T19:05:10.530 に答える
1

Monitはほとんどの Linux ディストリビューションに付属しており、探している機能に加えて、メモリ、ディスク容量、接続性のチェックなど、さらに多くの機能を実行できます。

docsから、 monit 構成ファイルに次のようなものを含めることができます。

check file with path /cifs/mydata
  if does not exist for 5 cycles then exec "/usr/bin/mount_cifs.sh"
于 2012-07-20T19:09:49.940 に答える
0

これを行う最も簡単な方法は、プロセスを自分で生成し、終了するのを待ってから再起動することです。これを行う最も簡単な方法は、シェルスクリプトループを使用することです。ただし、一般的に、この種のウォッチドッグアーキテクチャは、脆弱でグリッチになる傾向があります。なぜあなたのプロセスは死にかけているのですか?再起動中に何が起こりますか?プロセスの現在の「バージョン」が過去のある時点と同じであると想定する、システムの他の場所に保存されている状態はありますか?

一般的に、これは行われていません。ほとんどの場合、プロセスを1つのイベント/コマンド/要求を処理する1回限りのものとして設計するか、常に生きていると推定できるように堅牢に記述するのが最善です。それがうまくいかない場合は、シェルループでラップしてください。

于 2012-07-20T19:02:22.073 に答える