как узнать запущен ли процесс python
Получение сведений о процессах, модуль multiprocessing в Python.
Функции модуля, для получения сведений о запущенных процессах.
Содержание:
multiprocessing.active_children() :
Функция multiprocessing.active_children() возвращает список всех живых дочерних элементов текущего процесса.
multiprocessing.cpu_count() :
Функция multiprocessing.cpu_count() возвращает количество имеющихся ядер процессора на машине/сервере.
multiprocessing.current_process() :
multiprocessing.parent_process() :
multiprocessing.freeze_support() :
Вызов функции нужно добавлять сразу после строки if __name__ == ‘__main__’ основного модуля. Например:
Вызов multiprocessing.freeze_support() не имеет никакого эффекта, кроме как в Windows. Кроме того, если модуль нормально запускается интерпретатором Python в Windows (программа не была заморожена), то freeze_support() не нужна.
multiprocessing.get_all_start_methods() :
Функция multiprocessing.get_all_start_methods() возвращает список поддерживаемых методов запуска, первый из которых используется по умолчанию.
multiprocessing.get_context(method=None) :
Объекты контекста позволяют использовать несколько методов запуска в одной программе.
multiprocessing.get_start_method(allow_none=False) :
Функция multiprocessing.get_start_method() возвращает имя метода запуска, используемого для запуска процессов.
multiprocessing.set_executable() :
Для встраиваемых программ, вероятно, потребуется что-то вроде:
прежде чем они смогут создавать дочерние процессы.
multiprocessing.set_start_method(method) :
Обратите внимание, что функция должна вызываться не более одного раза и должна быть защищена внутри блока if __name__ == ‘__main__’ основного модуля.
Проверка Python, запущен процесс или нет
Я пытаюсь создать скрипт на Python, который позже я буду запускать как сервис. Теперь я хочу запускать определенную часть кода только во время работы iTunes. Из некоторых исследований я понимаю, что опрос всего списка команд, а затем поиск приложения для этого списка стоит дорого.
Я обнаружил, что процессы в операционных системах на основе UNIX создают файл блокировки для уведомления о том, что программа в данный момент выполняется, и в этот момент мы можем использовать os.stat(location_of_file) чтобы проверить, существует ли файл, чтобы определить, запущена ли программа или не.
Существует ли аналогичный файл блокировки, созданный в Windows?
Если нет, то каковы различные способы в Python, с помощью которых мы можем определить, запущен процесс или нет?
Я использую Python 2.7 и интерфейс iTunes COM.
Вы не можете полагаться на блокировку файлов в Linux или Windows. Я бы просто укусил пулю и перебрал все работающие программы. Я правда не верю, что это будет так “дорого”, как вы думаете. psutil – превосходный кроссплатформенный кабель модуля Python для перечисления всех запущенных программ в системе.
и теперь вы можете сделать:
Чтобы не вызывать это несколько раз и иметь обзор всех процессов таким образом, вы можете сделать что-то вроде:
Файлы блокировки обычно не используются в Windows (и редко в Unix). Обычно, когда программа Windows хочет увидеть, что другой экземпляр уже запущен, он вызовет FindWindow с известным названием или именем класса.
Вырез из примера вывода:
Вы были бы довольны тем, что ваша команда Python запускает другую программу для получения информации?
Если это так, я бы посоветовал вам взглянуть на PsList и все его варианты. Например, следующее будет сообщать вам о любом запущенном процессе iTunes
Если вы можете понять, как интерпретировать результаты, это, надеюсь, вам поможет.
Edit:
Когда я не запускаю iTunes, я получаю следующее:
С запуском itunes я получаю эту дополнительную строку:
Я обнаружил, что имя класса окна для значка в Dropboxbox было DropboxTrayIcon, используя Autohotkey Window Spy.
Проверка Python, запущен процесс или нет
Я пытаюсь создать скрипт на Python, который позже я буду запускать как сервис. Теперь я хочу запускать определенную часть кода только во время работы iTunes. Из некоторых исследований я понимаю, что опрос всего списка команд, а затем поиск приложения для этого списка стоит дорого.
Существует ли аналогичный файл блокировки, созданный в Windows?
Если нет, то каковы различные способы в Python, с помощью которых мы можем определить, запущен процесс или нет?
Я использую Python 2.7 и интерфейс iTunes COM.
12 ответов
Часть примера вывода:
Это прекрасно работает
И теперь вы можете сделать:
Чтобы не вызывать это несколько раз и иметь обзор всех процессов таким образом, вы можете сделать что-то вроде:
backend может быть ‘uia’ или ‘win32’
timeout если принудительно восстановить соединение с приложением в течение 5 секунд.
Будете ли вы счастливы, если ваша команда Python запустит другую программу для получения информации?
Если вы можете понять, как интерпретировать результаты, надеюсь, это поможет вам.
Изменить:
Когда я не запускаю iTunes, я получаю следующее:
С запущенным itunes я получаю еще одну строку:
win32ui.FindWindow(classname, None) возвращает дескриптор окна, если найдено какое-либо окно с данным именем класса. Это повышает window32ui.error в противном случае.
Я обнаружил, что имя класса окна для иконки на панели задач Dropbox было DropboxTrayIcon с помощью Autohotkey Window Spy.
Проверка Python, запущен процесс или нет
Я пытаюсь создать скрипт на Python, который позже я буду запускать как сервис. Теперь я хочу запускать определенную часть кода только во время работы iTunes. Из некоторых исследований я понимаю, что опрос всего списка команд, а затем поиск приложения для этого списка стоит дорого.
Я обнаружил, что процессы в операционных системах на основе UNIX создают файл блокировки для уведомления о том, что программа в данный момент выполняется, и в этот момент мы можем использовать os.stat(location_of_file) чтобы проверить, существует ли файл, чтобы определить, запущена ли программа или не.
Существует ли аналогичный файл блокировки, созданный в Windows?
Если нет, то каковы различные способы в Python, с помощью которых мы можем определить, запущен процесс или нет?
Я использую Python 2.7 и интерфейс iTunes COM.
ОТВЕТЫ
Ответ 1
Ответ 2
и теперь вы можете сделать:
Чтобы не вызывать это несколько раз и иметь обзор всех процессов таким образом, вы можете сделать что-то вроде:
Ответ 3
Файлы блокировки обычно не используются в Windows (и редко в Unix). Обычно, когда программа Windows хочет увидеть, что другой экземпляр уже запущен, он вызовет FindWindow с известным названием или именем класса.
Ответ 4
Вырез из примера вывода:
Ответ 5
Вы были бы довольны тем, что ваша команда Python запускает другую программу для получения информации?
Если это так, я бы посоветовал вам взглянуть на PsList и все его варианты. Например, следующее будет сообщать вам о любом запущенном процессе iTunes
Если вы можете понять, как интерпретировать результаты, это, надеюсь, вам поможет.
Edit:
Когда я не запускаю iTunes, я получаю следующее:
С запуском itunes я получаю эту дополнительную строку:
Ответ 6
Я обнаружил, что имя класса окна для значка в Dropboxbox было DropboxTrayIcon, используя Autohotkey Window Spy.
Ответ 7
Ответ 8
Если вы не можете полагаться на имя процесса, например, скрипты python, которые всегда будут иметь имя python.exe. Если этот метод очень удобен,
проверить документы для получения дополнительной информации http://psutil.readthedocs.io/en/latest/#psutil.pid_exists
Ответ 9
Это хорошо работает
Ответ 10
Ответ 11
backend может быть ‘uia’ или ‘win32’
Python проверяет, запущен ли процесс или нет
Я пытаюсь создать скрипт python, который я позже запущу как сервис. Теперь я хочу запустить определенную часть кода только тогда, когда работает iTunes. Я понимаю из некоторых исследований, что опрос всего списка команд, а затем поиск приложения для этого списка стоит дорого.
есть ли аналогичный файл блокировки, созданный в Windows?
если нет, то каковы различные способы в Python, с помощью которых мы можем определить, запущен ли процесс или нет?
Я использую интерфейс python 2.7 и iTunes COM.
9 ответов
вы не можете полагаться на файлы блокировки в Linux или Windows. Я бы просто укусил пулю и перебрал все запущенные программы. Я действительно не верю, что это будет так «дорого», как вы думаете. psutil является отличным кросс-платформенный модуль python кабель перечисления всех запущенных программ в системе.
файлы блокировки обычно не используются в Windows (и редко в Unix). Обычно, когда программа Windows хочет узнать, запущен ли уже другой экземпляр, она вызывает FindWindow С известным названием или именем класса.
win32ui.FindWindow(classname, None) возвращает дескриптор окна, если окно с заданным именем класса. Он поднимает window32ui.error иначе.
я обнаружил, что имя класса окна для значка в трее Dropbox было DropboxTrayIcon с помощью AutoHotkey Window Spy.
и теперь вы можете сделать:
чтобы избежать вызова этого несколько раз и иметь обзор всех процессов таким образом, вы могли бы сделать что-то вроде:
фрагмент вывода примера:
Вы были бы счастливы, если бы ваша команда Python запускала другую программу для получения информации?
если это так, я бы предложил вам взглянуть на программа pslist и все его варианты. Например, следующее расскажет вам о любом запущенном процессе iTunes
если вы можете понять, как интерпретировать результаты, это, надеюсь, поможет вам.
Edit:
когда я не запуск iTunes, я получаю следующий:
С itunes работает, я получаю эту дополнительную строку:
однако следующая команда выводит информацию только о самой программе iTunes, т. е. с помощью :