
python怎么判断进程结束
用户关注问题
如何在Python中检测一个进程是否已经停止运行?
我想知道用Python代码怎么判断一个已启动的进程是否已经结束了?
使用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('进程不存在或已结束')
Python中如何通过subprocess模块判断子进程是否完成?
我用subprocess启动了一个进程,想知道怎么判断它执行完毕了没有?
通过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)
怎样获取Python中某个进程的退出状态码?
除了判断进程是否结束,我还想知道如何在Python中获得进程的退出状态是多少?
通过等待进程完成并读取returncode属性
可以用subprocess的wait()方法让程序阻塞直到子进程结束,随后通过returncode属性获得退出状态码。返回码为0通常表示成功。示例如下:
import subprocess
proc = subprocess.Popen(['python', 'script.py'])
proc.wait() # 等待进程结束
exit_code = proc.returncode
print('进程退出状态码为:', exit_code)