📅  最后修改于: 2023-12-03 15:19:08.373000             🧑  作者: Mango
在 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()
函数启动一个后台进程,传入的参数是一个列表,其中第一个元素是要执行的命令,其余元素是命令的参数。
我们还可以通过 stdout
和 stderr
参数来控制进程的标准输出和标准错误输出,以及 stdin
参数来控制进程的标准输入。
然后,我们可以通过 process.pid
属性获取进程的 PID。
最后,我们还使用了 process.communicate()
函数等待进程结束,并获取其返回值和标准输出。
需要注意的是,process.communicate()
函数会阻塞程序,直到进程结束返回。如果我们不需要等待进程结束,可以不调用该函数。
以上就是一个简单的 Python 启动后台进程并获取 PID 的方法。