如何在Mac OSX中用Python检查进程是否正在运行

4 投票
3 回答
10010 浏览
提问于 2025-04-18 02:10

我在使用Python 2.7,操作系统是Mac OSX 10.9。

我想检查一个进程是否正在运行。我查看了这个问答,但结果不是我想要的。

我想确认某个特定名称的进程是否在运行。

3 个回答

1

我刚刚试了上面的代码,但在使用Python 2.7时没有成功。还没有在Python 3上试过。这里发一下更新后的代码,希望能帮到别人。

for p in psutil.process_iter():  # iterate through all running processes 
    if p.name() == 'firefox':
        print("firefox is running")
        break
4

使用一个叫做 psutil 的模块。比如说:

import psutil

# ...    

if pid in psutil.get_pid_list():
    print(pid, "is running")

补充说明:你可以这样获取所有正在运行的程序的进程ID和名称:

for p in psutil.process_iter():
    if p.name == 'firefox':
        print("firefox is running")
        break
7

试试这个。如果它返回一个进程 ID,那说明这个进程正在运行。用你的进程名称替换掉 firefox

# Python2
import commands
commands.getoutput('pgrep firefox')

因为在 Python 3.x 版本中不再有 commands 模块,所以我们可以使用 subprocess 模块来获取进程 ID。

# Python3
import subprocess
process = subprocess.Popen('pgrep firefox', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
my_pid, err = process.communicate()

这里的 my_pid 就是进程的 id

撰写回答