启动过程后,如何在孩子中获得父亲的PID?

时间:2014-05-08 10:29:01

标签: python process

在Python中,我通过Popen()开始一个新流程,效果很好。现在在子进程中,我想找到父进程ID。

实现这一目标的最佳方法是什么,也许我可以通过Popen构造函数传递PID,但是如何?或者有更好的方法吗?

PS:如果可能,我会仅使用标准库来推荐解决方案。

3 个答案:

答案 0 :(得分:12)

您可以使用os.getppid()

  

os.getppid()

Return the parent’s process id.

注意:这仅适用于Unix,而不适用于Windows。在Windows上,您可以在父进程中使用os.getpid(),并将pid作为参数传递给以Popen开头的进程。

答案 1 :(得分:5)

使用psutilhere

import psutil, os
psutil.Process(os.getpid()).ppid()

适用于Unix和Linux。 Windows(即使os.getppid()在此平台上不存在)

答案 2 :(得分:1)

ppid()是Process的成员方法,而不是变量,因此需要更改以上括号。

来源:psutil documentation