如何在Unix或Linux中使用Python获取程序的进程ID?

74 投票
9 回答
156364 浏览
提问于 2025-04-16 04:24

我正在用Python写一些监控脚本,想找个最简单的方法来获取任何正在运行的程序的进程ID,只要知道这个程序的名字就行。

就像这样:

ps -ef | grep MyProgram

我可以解析这个输出,不过我觉得在Python里可能有更好的方法。

9 个回答

24

如果你不只使用标准库的话,我推荐用 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}]
304

这是来自标准库的内容,具体可以查看这个链接

os.getpid()
15

试试 pgrep。它的输出格式简单得多,所以更容易处理。

撰写回答