Как проверить в Mac OSX с Python, запущен процесс или нет

Я использую Python 2.7 на Mac OSX 10.9.

Я хочу проверить, запущен процесс или нет. Я смотрел в этот Q & A, но результат не желателен.

Я хочу проверить, запущен ли какой-либо процесс с конкретным именем или нет

3 ответа

Решение

Попробуй это. Если он возвращает идентификатор процесса, значит, процесс запущен. Используйте имя вашего процесса вместо firefox,

import commands
commands.getoutput('pgrep firefox')

Поскольку командный модуль больше не в Python 3x, мы можем получить идентификатор процесса, используя subprocess Модуль здесь.

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

Здесь my_pid будет обрабатывать id.

Используйте модуль psutil. Например:

import psutil

...    

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

Изменить: Вы можете получить pids и имена всех запущенных процессов, как это:

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

Я просто пробовал приведенный выше код, и он не работал для меня на 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
Другие вопросы по тегам