Материал содержит описание функций и класса модуля psutil
с примерами, которые позволяют мониторить/извлекать различную информацию о службах Windows. Извлекаемое значение PID
службы Windows можно передавать в класс psutil.Process(pid)
для последующего управления ей.
psutil.win_service_iter()
итератор экземпляров всех служб Windows,psutil.win_service_get()
извлекает службу Windows по имени,psutil.WindowsService
экземпляр службы Windows.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()
ссылку на службу Windows,WindowsService.display_name()
отображаемое имя службы Windows,WindowsService.binpath()
путь к двоичному/исполняемому файлу службы,WindowsService.username()
имя пользователя, которому принадлежит служба,WindowsService.start_type()
метод запуска службы Windows,WindowsService.pid()
идентификатор процесса службы Windows,WindowsService.status()
статус службы Windows,WindowsService.description()
описание службы Windows,WindowsService.as_dict()
извлекает всю информацию о службе Windows в виде словаря,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
>>> 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'}