0

ユーザーが長時間の計算プロセス(たとえば、数時間)を開始できるようにするアプリケーションを作成しようとしています。そのために、PythonPopen()関数を使用します。メインのPylonsプロセスが正常に機能している限り、すべてが正常ですが、Pylonsプロセスを再起動すると、前回のパスターの起動から残っているゾンビプロセスがある場合、要求に応答しません。

この問題の原因または回避策は何でしょうか?

よろしくお願いします、Ivan。

4

2 に答える 2

1

ゾンビ プロセスを回避するには、子プロセスは二重の fork を実行して、制御プロセスから自分自身を切り離す必要があります。http://en.wikipedia.org/wiki/Zombie_processを参照

したがって、必要なことは、子プロセスのフォークを再度作成することだけです。ただし、関連するファイル ハンドルを開いたままにして通信できるように注意してください。

于 2011-09-21T19:06:36.113 に答える
-1

ある種のメッセージパッシングが必要です。これは、シグナルハンドラーをインストールすることで実行できます。Python にはsignalこのためのモジュールPopenがあり、send_signalメソッドがあります。

たぶんhttp://www.doughellmann.com/PyMOTW/subprocess/#signaling-between-processesも役立ちます。

于 2011-09-21T18:12:16.277 に答える