在Python中,我通过Popen()
开始一个新流程,效果很好。现在在子进程中,我想找到父进程ID。
实现这一目标的最佳方法是什么,也许我可以通过Popen
构造函数传递PID,但是如何?或者有更好的方法吗?
PS:如果可能,我会仅使用标准库来推荐解决方案。
答案 0 :(得分:12)
您可以使用os.getppid()
:
os.getppid()
Return the parent’s process id.
注意:这仅适用于Unix,而不适用于Windows。在Windows上,您可以在父进程中使用os.getpid()
,并将pid作为参数传递给以Popen
开头的进程。
答案 1 :(得分:5)
使用psutil
(here)
import psutil, os
psutil.Process(os.getpid()).ppid()
适用于Unix和Linux。 Windows(即使os.getppid()
在此平台上不存在)
答案 2 :(得分:1)
ppid()是Process的成员方法,而不是变量,因此需要更改以上括号。