他のいくつかのプロセスの起動を制御するスーパーバイザー プロセスを C で作成し、すべてのプロセス (以前はそれ自体で開始されたもの) を監視し、プロセスのいずれかが終了した場合などのエラーに対処します。すべての I/O エラーを管理します。そのプロセスを再起動し、同じコンテキストで、また終了ポイントからそのプロセスを再起動します。終了の背後にあるエラーを解決しようとする場合もあります。
私はたくさん検索しましたが、良いものは何も見つかりませんでした。Erlang にはスーパーバイザー コントロールがあることがわかりました。私はCで同じことをしたい.私はこれを行う2つの方法を考えています(プロセスの終了に注意してください):
シグナルの使用: さらに、次の 2 つの方法があります。
a) スーパーバイザからのポーリング プロトコルを使用し、プロセスが正常かどうかを定期的にチェックする。
b) 非スーパーバイザ プロセスのすべてのシグナルを処理し、キラー シグナルが発生した場合はスーパーバイザに通知します。Use Process Accounting: Stevens で定義されているように - (pg250)プロセスが終了するたびに、アカウンティング ファイルにレコードが書き込まれます。スーパーバイザーをこの会計ファイル駆動型にすることができます。変更が発生するたびに、プロセスの 1 つが終了して処理されているかどうかを確認します。
私が欲しいのは、このスーパーバイザー プロセスに関する情報がネット上にほとんどないためです。