编程语言
首页 > 编程语言> > python – 如何扭曲和多处理.Process创建僵尸?

python – 如何扭曲和多处理.Process创建僵尸?

作者:互联网

python中,使用twisted loopingcall,multiprocessing.Process和multiprocessing.Queue;是否可以创建一个僵尸进程.如果是这样,那怎么样?

解决方法:

zombie是一个已完成的过程,但其启动过程尚未注意到它的完成.这是扭曲过程的责任,收获自己的孩子.

如果您使用spawnProcess启动该过程,则一切都应始终按预期工作.但是,正如bug #733 in Twisted(早已修复)中所述,当你想将Twisted与其他产生进程的函数一起使用时,会出现大量令人讨厌的边缘情况,因为Python的API历史上很难在信号处理程序之间进行协作.

这已在最新版本的代码中得到修复,但我相信您可能会在以下情况下遇到此错误:

>您使用的是早于10.1的Twisted版本.
>您使用的是早于2.6的Python版本.
>您没有构建Twisted的本机扩展模块(如果您使用的是开发结帐或解压缩的tarball而不是已安装的版本,则可以使用python setup.py build_ext -i修复此问题).
>您正在使用像popen或subprocess这样的模块.

希望升级Twisted或运行相应的命令将解决您的直接问题,但您仍应考虑使用spawnProcess,因为这可以让您将进程输出视为reactor事件循环中的正常事件.

标签:python,process,multiprocessing,twisted,zombie-process
来源: https://codeday.me/bug/20190826/1734885.html