我有一个Python程序,它使用psutil来运行一些不同的twistd ...
命令。twistd
生成并守护进程,并编写一个foo.pid
,我可以从中读取pid。
它还进行了设置,以便在进程终止时清理该pid文件,这意味着派生的进程可能完成得太快,以至于我无法读取pid。
如果twistd
不能写入pid文件,它确实会返回一个错误代码,所以我可以假设没有pid文件和扭曲的错误代码意味着进程成功地生成并很快终止,但整个过程似乎很不稳定。更不用说必须等待pid文件被填充内容,同时还要处理它被填充但又被一次性删除的可能性。
有更好的方法吗?
没有更好的方法了(或者,如果有,很难或不可能知道它是什么,因为你没有描述你正在解决的一般问题,你只是用你已经选择的解决方案描述了一个问题)。
不过,有一个开放的特性要求使twistd
更适合这种使用。如果你帮助解决它,那么你就可以随心所欲地去做。
我不确定您使用psutil的目的是什么,但仅从Twisted调用spawnProcess就会触发一个知道其pid的IReactorProcess
。
如果你呼吁的是twistd
,那么如果你愿意的话,肯定有一种方法可以在同一流程中完成你要做的事情。