【发布时间】:2016-08-04 05:06:23
【问题描述】:
给定一个进程名称(PID 未知),我如何检测进程何时结束(以及如何找出给定进程名称的 PID)?另外,我正在为 Windows 资源管理器执行此操作,所以我将如何跟踪进程名称,因为它随着用户在目录中移动而发生变化。
如果有帮助,我正在使用 Python 2.7 和 windows。
谢谢
【问题讨论】:
给定一个进程名称(PID 未知),我如何检测进程何时结束(以及如何找出给定进程名称的 PID)?另外,我正在为 Windows 资源管理器执行此操作,所以我将如何跟踪进程名称,因为它随着用户在目录中移动而发生变化。
如果有帮助,我正在使用 Python 2.7 和 windows。
谢谢
【问题讨论】:
正如 Padraic Cunningham 在这里所写: Python: How to get PID by process name? 为了从进程名中获取pid:
from subprocess import check_output
def get_pid(name):
return int(check_output(["pidof","-s",name]))
正如马特在这里写的:https://stackoverflow.com/a/6767792/5088142 为了使用其 pid 获取进程的状态,您可以使用 psutil https://github.com/giampaolo/psutil
import psutil
print psutil.Process(pid).status
编辑:您可以将这两部分组合成以下代码:
from subprocess import check_output
import psutil
def get_pid(name):
return int(check_output(["pidof","-s",name]))
def get_status(name)
pid = get_pid(name)
print psutil.Process(pid).status
【讨论】:
import psutil pids = [p for p in psutil.pids() if psutil.Process(p).name() == process_name] print(pids) 获取所有 pid