📜  python 在后台启动进程并获取 pid - Python (1)

📅  最后修改于: 2023-12-03 15:19:08.373000             🧑  作者: Mango

Python 在后台启动进程并获取 PID

在 Python 中,我们可以使用 subprocess 模块来启动一个后台进程并获取其进程 ID(PID)。

下面是一个示例代码:

import subprocess

# 启动一个后台进程
process = subprocess.Popen(['python', 'script.py'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

# 获取进程 ID
pid = process.pid

print(f'后台进程已启动,进程 ID 为 {pid}')

# 等待进程结束
output, _ = process.communicate()
exit_code = process.returncode

print(f'后台进程结束,退出码为 {exit_code}')
print(output.decode())

在上面的代码中,我们使用 subprocess.Popen() 函数启动一个后台进程,传入的参数是一个列表,其中第一个元素是要执行的命令,其余元素是命令的参数。

我们还可以通过 stdoutstderr 参数来控制进程的标准输出和标准错误输出,以及 stdin 参数来控制进程的标准输入。

然后,我们可以通过 process.pid 属性获取进程的 PID。

最后,我们还使用了 process.communicate() 函数等待进程结束,并获取其返回值和标准输出。

需要注意的是,process.communicate() 函数会阻塞程序,直到进程结束返回。如果我们不需要等待进程结束,可以不调用该函数。

以上就是一个简单的 Python 启动后台进程并获取 PID 的方法。