2010-12-27 19 views

答えて

2

正確にあなたが何を意味するかはっきりしていません。シャットダウン/プロセス自体の中断?子プロセスですか?

  • プロセス自体のシャットダウン/アボート:Pythons atexit moduleを参照してください。ここでは、プログラムがきれいに終了したときにコールバックを登録できます。しかし、あなたのプログラムが重大な問題(例えばsegfault)に失敗した場合、あなたのatexitハンドラは決して呼び出されません。絶対にすべてのアボートを捕まえるには監督プロセスが必要です。
  • 子プロセスのシャットダウン/中止:サブプロセスモジュールを使用すると、ポップンオブジェクトのpoll()またはwait()を呼び出して、生成されたプロセスが死んでいるかどうか/死ぬのを待つことができます。より高度な実装では、Pythonsシグナルモジュールを使ってSIGCHLDのハンドラを設定します。このシグナルは、子プロセスの1つが終了するたびにプロセスに送られます。
関連する問題