简体   繁体   English

如何使Apache / mod_python进程收集其僵尸?

[英]How to make Apache/mod_python process collect its zombies?

Apache/2.2.6 (Unix) DAV/2 mod_python/3.2.8 Python/2.4.4 configured ...

One of apache processes spawns some long-running python script asynchronously, and apparently doesn't seem to collect its child process table entry. apache进程之一异步地生成了一些长时间运行的python脚本,而且显然似乎没有收集其子进程表项。 After that long-run-in-subprocess python script finishes - defunct python process has been left. 在子进程中长期运行的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>

What is the way to make the Apache process to collect its children? 使Apache进程收集其子级的方法是什么? Is it possible to do the job via a mod_python request handler ( like PythonCleanupHandler for example)? 是否可以通过mod_python请求处理程序(例如PythonCleanupHandler)完成这项工作?

Thanks. 谢谢。

File a bug report. 提交错误报告。

EDIT: I'm serious. 编辑:我是认真的。 Leaving zombies behind is a bug, and there is almost certainly nothing you can do from within Python. 留下僵尸是一个错误,几乎可以肯定,在Python中您无能为力。

Upgrade to the latest versions, look for bug reports, post on the mailing list, switch to another product. 升级到最新版本,查找错误报告,在邮件列表中发布,切换到其他产品。

删除mod_python, 改为使用mod_wsgi (用于wsgi ),它不会在afaik周围留下孤立的僵尸。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM