2016-05-27 34 views
0

我需要得到真实进程ID 在产生的孩子正如我的例子中的父级看到的。现在os.getpgid(0)只是返回父进程ID,因为它的继承是正确的。但是在父进程中,子进程ID是不同的。这只是一个简单的例子,但我会在另一个程序中实现它:Python衍生的子进程ID

#!/usr/bin/python3 
import os 
mypid = os.getpgid(0) 
print ("My pid is %s" % mypid) 
childpid = os.spawnv(os.P_NOWAIT, "./spawn2.py", ["foo", "bar"]) 
print ("I forked to spawn2 with pid %s" % childpid) 

#!/usr/bin/python3 
import os 
pid = os.getpgid(0) 
print ("I'm spawn2") 
print ("My pid is %s" % pid) 

输出看起来是这样,但我希望催生孩子说,它的PID是1658:

[email protected]:~/git-repos/zguide/examples/Python $ ./spawn1.py 
My pid is 1657 
I forked to spawn2 with pid 1658 
[email protected]:~/git-repos/zguide/examples/Python $ I'm spawn2 
My pid is 1657 
+1

你是否故意使用getp ** g ** id()? – Jasper

+0

没有我所知道的。我已经怀疑可能还有其他我想用的东西,但我还没有发现它。你是否暗示有别的东西?我会再次检查os文档,也许我错过了它。 – dpetican

回答

1

咄。答案是使用os.getpid()我只是困惑。 Thx推动@Jasper。