python怎么判断进程结束

python怎么判断进程结束

作者:Joshua Lee发布时间:2026-03-25阅读时长:0 分钟阅读次数:4

用户关注问题

Q
如何在Python中检测一个进程是否已经停止运行?

我想知道用Python代码怎么判断一个已启动的进程是否已经结束了?

A

使用psutil库检测进程状态

可以利用Python的psutil库,通过进程ID(PID)获取进程对象,然后调用is_running()方法检查进程是否还存活。如果返回False,说明进程已经结束。示例代码如下:

import psutil

pid = 12345  # 替换为目标进程的PID
try:
    p = psutil.Process(pid)
    if p.is_running():
        print('进程仍在运行')
    else:
        print('进程已经结束')
except psutil.NoSuchProcess:
    print('进程不存在或已结束')
Q
Python中如何通过subprocess模块判断子进程是否完成?

我用subprocess启动了一个进程,想知道怎么判断它执行完毕了没有?

A

通过subprocess.Popen对象的poll()方法判断进程状态

借助subprocess模块启动子进程后,可以调用Popen对象的poll()方法。如果返回None,表示进程仍在运行;如果返回一个整数值,就是进程的返回码,说明进程已经结束。代码示例如下:

import subprocess

proc = subprocess.Popen(['python', 'script.py'])

# 检查进程是否结束
if proc.poll() is None:
    print('进程未结束')
else:
    print('进程已结束,返回码:', proc.returncode)
Q
怎样获取Python中某个进程的退出状态码?

除了判断进程是否结束,我还想知道如何在Python中获得进程的退出状态是多少?

A

通过等待进程完成并读取returncode属性

可以用subprocess的wait()方法让程序阻塞直到子进程结束,随后通过returncode属性获得退出状态码。返回码为0通常表示成功。示例如下:

import subprocess

proc = subprocess.Popen(['python', 'script.py'])
proc.wait()  # 等待进程结束
exit_code = proc.returncode
print('进程退出状态码为:', exit_code)