如何让Apache/mod_python进程收集它的僵尸进程?

2 投票
2 回答
710 浏览
提问于 2025-04-11 09:35
Apache/2.2.6 (Unix) DAV/2 mod_python/3.2.8 Python/2.4.4 configured ...

有一个Apache进程会异步启动一些运行时间很长的Python脚本,但似乎没有收集它的子进程信息。等这个长时间运行的子进程Python脚本结束后,就留下了一个“僵尸”Python进程。

# ps -ef | grep httpd
root     23911     1  0 Oct15 ?        00:00:01 /usr/sbin/httpd
...
qa       23920 23911  0 Oct15 ?        00:00:00 /usr/sbin/httpd


# ps -ef | grep python
...
qa       28449 23920  0 12:38 ?        00:00:00 [python] <defunct>

有没有办法让Apache进程去收集它的子进程?通过mod_python请求处理器(比如PythonCleanupHandler)能做到吗?

谢谢。

2 个回答

1

提交一个错误报告。

补充说明:我说的是认真的。留下“僵尸”进程是个错误,而且几乎可以肯定你在Python内部是无能为力的。

升级到最新版本,查看是否有错误报告,发帖到邮件列表,或者换个其他的产品。

1

建议放弃使用 mod_python,改用 mod_wsgi(这个是用来支持 wsgi 的)。据我所知,mod_wsgi 不会留下那些无用的“僵尸”进程。

撰写回答