Skip to main content

A Python package for cross-platform process management, providing process data as dicts/JSON and allowing process control (start, stop, kill) on Windows, Mac, and Linux.

Project description

Process Inspector

Coverage

Overview

A Python package for cross-platform process management, providing process data as dicts/JSON and allowing process/service control (start, stop, kill) on Windows, Mac, and Linux (Raspberry Pi).

Installation

Use uv or pip.

uv add process-inspector
python3 -m pip install process-inspector

Development

To get a list of all commands with descriptions simply run make.

make env
make pip_install_editable

Testing

make pytest
make coverage
make open_coverage

Issues

If you experience any issues, please create an issue on Github.

Example Usage

from process_inspector import NativeApp
from process_inspector import Service
from process_inspector import Teamviewer
from process_inpsector import OperatingSystem

# App control
app = NativeApp('C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe')
app.open()
app.is_running()
app.get_version()
app.as_dict()
app.process_info()
app.close()

# Teamviewer
tv = Teamviewer()
tv.open()
tv.is_running()
tv.close()
tv.get_teamviewer_info()

# This operation requires sudo priveleges on Linux and Mac
# Service control
service = Service("Spooler")
service.start()
service.is_running()
service.stop()

# This operation requires sudo priveleges on Linux and Mac
OperatingSystem().reboot()

Use with Caution!

To control system services we need to allow passwordless use of specific executables. You should know the security implications of doing this so use at your own risk.

Linux

Use sudo visudo to add the following lines:

%sudo ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl
%sudo ALL=(ALL) NOPASSWD: /usr/bin/systemctl
%sudo ALL=(ALL) NOPASSWD: /usr/sbin/reboot

Save and exit the file (:wq!). Then do:

sudo nano /etc/supervisor/supervisord.conf

Adjust the config so your user can access it:

[unix_http_server]
chmod=0770
chown=root:pi

Then restart supervisor:

sudo systemctl restart supervisor

macOS

Use sudo visudo to add the following lines:

%admin ALL=(ALL) NOPASSWD: /opt/homebrew/bin/supervisorctl
%admin ALL=(ALL) NOPASSWD: /sbin/reboot

Save and exit the file (:wq!).

History

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

0.1.0 (2025-09-11)

  • First release

0.1.1 (2025-09-11)

  • ADDED - more test coverage

0.1.2 (2025-09-11)

  • ADDED - Service control (Windows Services or Linux/ Mac supervisorctl processes)
  • ADDED - TeamViewer status and basic control (start, stop)

0.1.3 (2025-09-16)

  • CHANGED - Improved query times for process running and process info

0.1.4 (2025-09-23)

  • CHANGED - Fixed failing Linux tests

0.1.5 (2025-09-29)

  • CHANGED - get_process_info can fail if the process was killed by the user within Windows/Mac. This fix handles that by resetting the cache so the process is looked up again.

0.1.6 (2025-10-02)

  • CHANGED - Service class on Mac/Linux defaults to supervisorctl
  • ADDED - If you want to use systemctl on Linux you can do from process_inspector.servicecontrol import service_class_factory and then instantiate with Service = service_class_factory('systemctl').

0.1.8 (2025-10-10)

  • ADDED - Added UnityApp class which is just an extended NativeApp class with some additional getters to make things easier when working with Unity builds.
  • Added last_seen to process_info for Service and NativeApp

0.1.8 (2025-11-04)

  • ADDED - ScheduledTask basic control (start, stop) for Windows only.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

process_inspector-0.1.8.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

process_inspector-0.1.8-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file process_inspector-0.1.8.tar.gz.

File metadata

  • Download URL: process_inspector-0.1.8.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for process_inspector-0.1.8.tar.gz
Algorithm Hash digest
SHA256 78371c722c28fef669d728ab9a3ca6323f02c9265aefbfca87b495aa4644f228
MD5 50167edfdbbb8b2d6164439bbdf41110
BLAKE2b-256 4e7cecf528421e490c22fd20c39f8c74b7ea0730434b6301f0e2109c718df66d

See more details on using hashes here.

File details

Details for the file process_inspector-0.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for process_inspector-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 d7f38c82043e5cc349ae636cb5a3c5c5ecb63d297a1918e6ab31d605f67fb4e7
MD5 a42dd1d99084823b04b01b11eb1e68ca
BLAKE2b-256 dbaef244380808eee432a666e398d0ca83f5eee591efec521b03a5ef7dab1dc7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page