我正在用Python编写一些监控脚本,我试图找到最简洁的方法来获取任何随机运行程序的进程ID,并给出该程序的名称
就像是
ps -ef | grep MyProgram
Run Code Online (Sandbox Code Playgroud)
我可以解析它的输出,但我认为在python中可能有更好的方法
Der*_*ley 288
从标准库:
os.getpid()
Run Code Online (Sandbox Code Playgroud)
Mar*_*ark 19
如果您不限制自己使用标准库,我喜欢psutil.
例如,找到所有"python"进程:
>>> import psutil
>>> [p.info for p in psutil.process_iter(attrs=['pid', 'name']) if 'python' in p.info['name']]
[{'name': 'python3', 'pid': 21947},
{'name': 'python', 'pid': 23835}]
Run Code Online (Sandbox Code Playgroud)
适应以前发布的答案.
def getpid(process_name):
import os
return [item.split()[1] for item in os.popen('tasklist').read().splitlines()[4:] if process_name in item.split()]
getpid('cmd.exe')
['6560', '3244', '9024', '4828']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132691 次 |
| 最近记录: |