2024-10-04 01:25:19 发布
网友
我有一个使用SIGSTOP和.SIGCONT命令的python脚本os.杀死暂停或继续一个过程。有没有办法确定相关的PID是处于暂停状态还是恢复状态?在
调用ps并检查STAT值。 D不间断睡眠(通常为IO) R正在运行或可运行(运行队列中) S可中断睡眠(等待事件完成) T被作业控制信号或正在被跟踪而停止。 W paging(自2.6.xx内核起无效) X死亡(不应该被看到) Z失效(“僵尸”)进程,终止但未被其父进程获取。在
您可以从进程的/proc目录(/proc/<PID>)中找到有关进程的信息。具体地说,可以通过以下python表达式找到它的运行状态:
/proc/<PID>
open(os.path.join('/proc', str(pid), 'stat')).readline().split()[2]=='T'
编辑:下一个表达式修复了原始表达式的一个(可能很少见)错误:
您可以使用psutil:
>>> import psutil >>> pid = 1243 >>> p = psutil.Process(pid) >>> p.status 0 >>> str(p.status) 'running' >>> p.status == psutil.STATUS_RUNNING True >>> >>> p.suspend() >>> p.status 3 >>> str(p.status) 'stopped' >>> p.status == psutil.STATUS_STOPPED True >>> >>> p.resume() >>> str(p.status) 'running' >>>
调用ps并检查STAT值。 D不间断睡眠(通常为IO) R正在运行或可运行(运行队列中) S可中断睡眠(等待事件完成) T被作业控制信号或正在被跟踪而停止。 W paging(自2.6.xx内核起无效) X死亡(不应该被看到) Z失效(“僵尸”)进程,终止但未被其父进程获取。在
您可以从进程的/proc目录(
/proc/<PID>
)中找到有关进程的信息。具体地说,可以通过以下python表达式找到它的运行状态:编辑:下一个表达式修复了原始表达式的一个(可能很少见)错误:
^{pr2}$您可以使用psutil:
相关问题 更多 >
编程相关推荐