我有一个使用psutil运行一些各种twistd ...
命令的Python程序。 twistd
产生并守护进程并写入foo.pid
,我可以从中读取该pid。如何可靠地获取扭曲衍生过程的pid?
它还会设置为在进程终止时清除此pid文件,这意味着生成的进程可能完成得太快而无法读取pid。
twistd
如果无法写入pid文件,它会返回一个错误代码,所以我可以假设没有pid文件并且没有扭曲的错误代码意味着进程成功并且很快终止了,但是整个过程看起来很片断。更不用说必须等待pid文件充满内容,同时还要处理充满的可能性,但又一次去除。
有没有更好的方法?
我的“已选择”解决方案只是我的最佳尝试。例如,当命令行错误时,它不能在'twistd'的最奇怪的行为之间分离,并且它返回的退出代码为零,程序结束速度非常快,这就是我问这个问题的原因。 – porgarmingduod 2012-07-29 08:59:47
对不起,我想我的观点不够清楚。你为什么要启动守护进程的扭曲子进程,然后试图学习它的PID?总体目标是什么? – 2012-07-29 13:59:19
一般问题是启动并监视几个扭曲的服务,在必要时将其杀死,并报告内存和CPU使用情况等。 – porgarmingduod 2012-07-30 10:43:54