0

我正在尝试编写一个允许用户启动长时间运行的计算过程(例如几个小时)的应用程序。为此,我使用 PythonPopen()函数。只要主 Pylons 进程正常工作,一切都很好,但是当我重新启动 Pylons 进程时,如果上次启动粘贴程序留下任何僵尸进程,它不会响应任何请求。

这个问题的根源或解决方法是什么?

在此先感谢,伊万。

4

2 回答 2

1

为了避免僵尸进程,子进程必须执行双叉以将自己从控制进程中分离出来。见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 回答