0
私は "prog.py"という名前のpythonスクリプトを持っています。私は現在のスクリプトの動作を監視する新しいプロセスを開く機能を追加したいと思います。スクリプトが終了すると、プロセスは終了を認識して特定の関数を呼び出します。ここに擬似コードがあります:メインプロセス終了後に起動するPythonでプロセスを作成する
while (script is active):
sleep(1) # check its status once a second
func()
どうすればいいですか?
+1最後の文です。 'atexit'を使うだけで、特別な理由がなければプロセスを気にしないでください。 –
問題は、atexitドキュメントの次の注記にあります。 "このモジュールを介して登録された関数は、Pythonで処理されないシグナルによってプログラムが強制終了されたとき、Pythonの致命的な内部エラーが検出されたとき、またはos._exit ()が呼び出されます。 私はスクリプト終了のいずれの場合でも動作する解決策を探しています... – CrazySynthax
@CrazySynthax:その場合、「main」プロセスではなく「main」プロセスを監視プロセスで管理する方が簡単ですプロセスがメインプロセスを順番に監視しようとするモニタを生成します。前者は 'サブプロセス 'の単純な使い方であり、後者は一般的に移植性のないOS固有のプロセスデタッチステップとリグマロールを含む。 – ShadowRanger