如何可靠地获得扭曲产生过程的pid?

时间:2012-07-27 12:19:15

标签: python linux twisted pid twistd

我有一个使用psutil运行某些twistd ...命令的Python程序。 twistd生成并守护进程并编写foo.pid,我可以从中读取pid。

它还设置为在进程终止时清除此pid文件,这意味着生成的进程可能完成得太快而无法读取pid。

如果

twistd无法写入pid文件,它会返回错误代码,因此我可以假设没有pid文件且没有扭曲的错误代码意味着该进程已成功生成并且很快终止,但整个过程看起来很脆弱。更不用说必须等待pid文件填充内容,同时还要处理它被填充但一次又一次删除的可能性。

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

没有更好的方法(或者如果有的话,很难或不可能知道它是什么,因为你没有描述你正在解决的一般问题,你刚才描述了你遇到的问题使用您已经选择的解决方案。)

open feature request使twistd更适合这种用途。如果你帮忙解决它,那么你将能够按照你想要的方式做到这一点。

答案 1 :(得分:0)

我不确定您使用psutil的部分是什么,但只是从Twisted中调用spawnProcess会触发一个知道其pid的IReactorProcess

如果你正在呼唤twistd,那么如果你愿意的话,肯定有办法在同一个过程中做你正在做的事情。