Мне нужен скрипт, который проверяет, запущен ли определенный процесс, и возвращает что-то, если он не найден. Я знаю, что это можно сделать с помощью подпроцесса, но есть ли более простой способ сделать это?
В Windows вы можете использовать WMI:
import win32com.client def find_process(name): objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator") objSWbemServices = objWMIService.ConnectServer(".", "root\cimv2") colItems = objSWbemServices.ExecQuery( "Select * from Win32_Process where Caption = '{0}'".format(name)) return len(colItems) print find_process("SciTE.exe")
Для аналогичных целей я использовал библиотеку psutil . Некоторые подсказки:
psutil.pids()
process = psutil.Process(pid)
process.kill
process.terminate()
Установка в windows - pip выполнит установку из исходного кода (что означает компиляцию), поэтому вы, вероятно, захотите загрузить двоичную установку из https://pypi.python.org/pypi/psutil/#downloads.
pip
Взгляните на: получение информации о процессе в Windows