2

我有一个 Python 程序,它使用psutil来运行一些不同的twistd ...命令。twistd产生并守护一个进程并写入一个foo.pid我可以从中读取pid的进程。

它还进行了设置,以便在进程终止时清理此 pid 文件,这意味着生成的进程可能完成得如此之快,以至于我无法读取 pid。

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

有没有更好的办法?

4

2 回答 2

2

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

不过,有一个开放的功能请求可以使twistd这种用途更易于使用。如果您帮助解决它,那么您将能够按照您的意愿进行操作。

于 2012-07-28T00:09:44.010 回答
0

我不确定您将 psutil 用于哪个部分,但只需从 Twisted 调用spawnProcess就会触发一个IReactorProcess知道其 pid 的。

如果这是twistd您的呼唤,那么如果您愿意,肯定有一种方法可以在同一过程中做您想做的事情。

于 2012-07-27T12:53:17.420 回答