gpt4 book ai didi

python - 获取在另一个终端中执行的 python 进程的状态

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:23 26 4
gpt4 key购买 nike

我有一个 python 程序,它将在新终端中创建并执行另一个 python 脚本。为此,我使用了 subprocess.Popen。我正在尝试使用 .pid 获取新进程的 PID。但是,这个 pid 的值似乎与新创建进程的真实 pid 不匹配(两个值不匹配)。

这是我的代码示例:

from subprocess import Popen

p = Popen("gnome-terminal -e 'python'",shell = True)
print p.pid

在新打开的终端中,我尝试使用以下方法获取 pid:

import os
print os.getpid()

我得到两个不同的值。有谁知道如何获得正确的pid?我需要知道第二个过程何时完成,以便在第一个过程中执行操作。

感谢您的帮助!

如果您需要更多详细信息,请告诉我:)

最佳答案

However, the value of this pid doesn't seem to match the real pid of the newly created process (the two values don't match).

这里有三个进程: shell=True 使 /bin/sh 运行 运行 gnome-terminal 运行 python (可能是间接的)。 gnome-terminal 可能只是一个启动程序,它将启动 python 委托(delegate)给正在运行的服务器进程并退出。

shell=False 在这里无济于事。您将获得 gnome 终端的 pid 而不是 /bin/sh——您不会获得 python 进程的 pid。

您可以将 pid 写入已知文件或通过管道/套接字进行通信。

关于python - 获取在另一个终端中执行的 python 进程的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37738375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com