Как проверить в 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