【问题标题】:Python spawned child process IDPython 生成的子进程 ID
【发布时间】:2016-05-27 17:08:30
【问题描述】:

我需要获取 真实 进程 ID IN the spawned child,如我的示例中父级所见。现在 os.getpgid(0) 只返回父进程 ID,因为它的继承是正确的。但是在父进程中,子进程 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:

pi@oriondev1:~/git-repos/zguide/examples/Python $ ./spawn1.py
My pid is 1657
I forked to spawn2 with pid 1658
pi@oriondev1:~/git-repos/zguide/examples/Python $ I'm spawn2
My pid is 1657

【问题讨论】:

  • 你是否故意使用 getpgid()?
  • 不,我只知道。我已经怀疑可能还有其他我想要使用的东西,但我还没有找到它。你是在暗示还有别的吗?我会再次检查操作系统文档,也许我错过了。

标签: python linux


【解决方案1】:

呃。答案是使用 os.getpid() 我只是感到困惑。感谢@Jasper 的轻推。

【讨论】:

    猜你喜欢
    • 2021-01-23
    • 2014-03-05
    • 2011-08-11
    • 1970-01-01
    • 2021-09-13
    • 2018-05-02
    • 1970-01-01
    • 2010-12-24
    • 2016-11-05
    相关资源
    最近更新 更多