Сообщить об ошибке.

Мониторинг служб ОС Windows модулем psutil в Python

Материал содержит описание функций и класса модуля psutil с примерами, которые позволяют мониторить/извлекать различную информацию о службах Windows. Извлекаемое значение PID службы Windows можно передавать в класс psutil.Process(pid) для последующего управления ей.

Содержание:


psutil.win_service_iter():

Функция psutil.win_service_iter() возвращает итератор, члены которого являются экземпляры класса WindowsService всех установленных служб Windows.

Доступность: Windows

psutil.win_service_get(name):

Функция psutil.win_service_get() извлекает и возвращает службу Windows по имени name, возвращая экземпляр класса WindowsService.

Если служба с таким именем не существует, то поднимается исключение psutil.NoSuchProcess.

Доступность: Windows

psutil.WindowsService():

Объект psutil.WindowsService представляет службу Windows с заданным именем. Этот класс возвращается функциями psutil.win_service_iter() и psutil.win_service_get() и не должен создаваться напрямую.

Доступность: Windows

Методы объекта WindowsService:


WindowsService.name():

Метод WindowsService.name() возвращает имя службы Windows. Эта строка представляет собой ссылку на службу и может быть передана в функцию psutil.win_service_get() для получения нового экземпляра WindowsService.

WindowsService.display_name():

Метод WindowsService.display_name() возвращает отображаемое имя службы Windows.

Значение кэшируется при создании экземпляра этого класса.

WindowsService.binpath():

Метод WindowsService.binpath() возвращает полный путь к двоичному/исполняемому файлу службы Windows в виде строки, включая аргументы командной строки.

WindowsService.username():

Метод WindowsService.username() возвращает имя пользователя, которому принадлежит эта служба Windows.

WindowsService.start_type():

Метод WindowsService.start_type() возвращает строку, которая означает метод запуска службы Windows может быть 'automatic', 'manual' или 'disabled'.

WindowsService.pid():

Метод WindowsService.pid() возвращает идентификатор процесса службы Windows, если таковой имеется, в противном случае None.

Возвращаемый PID может быть передан классу psutil.Process(pid) для управления процессом службы Windows.

WindowsService.status():

Метод WindowsService.status() возвращает статус службы Windows в виде строки, которая может быть 'running', 'paused', 'start_pending', 'pause_pending', 'continue_pending', 'stop_pending' or 'stopped'.

WindowsService.description():

Метод WindowsService.description() возвращает подробное описание службы Windows.

WindowsService.as_dict():

Метод WindowsService.as_dict() представляет собой метод, извлекающий всю указанную выше информацию в виде словаря.

Availability: Windows

Пример мониторинга служб ОС Windows.

>>> import psutil
>>> list(psutil.win_service_iter())
# [<WindowsService(name='AeLookupSvc', display_name='Application Experience') at 38850096>,
#  <WindowsService(name='ALG', display_name='Application Layer Gateway Service') at 38850128>,
#  <WindowsService(name='APNMCP', display_name='Ask Update Service') at 38850160>,
#  <WindowsService(name='AppIDSvc', display_name='Application Identity') at 38850192>,
#  ...]
>>> s = psutil.win_service_get('alg')
>>> s.as_dict()
# {'binpath': 'C:\\Windows\\System32\\alg.exe',
#  'description': 'Provides support for 3rd party protocol plug-ins for Internet Connection Sharing',
#  'display_name': 'Application Layer Gateway Service',
#  'name': 'alg',
#  'pid': None,
#  'start_type': 'manual',
#  'status': 'stopped',
#  'username': 'NT AUTHORITY\\LocalService'}