simple process manager
Project description
PMO - Process Manager Omni
A lightweight process manager inspired by PM2, but designed primarily for development environments.
Features
start,stop, andrestartservices, similar to PM2- Simple YAML configuration
- Real-time logs with highlight
- Environment variable support
- Automatic
.envfile loading - Multi-machine support with hostname-specific directories (for shared NAS environments)
Installation
pip install pmo
Usage
Quick Start
- Create a
pmo.ymlfile in your project:
# Simple format, just like procfile
web-server: node server.js
# Detailed format
api-server:
cmd: python api.py
cwd: ./api
env:
NODE_ENV: development
- Optional: Create a
.envfile for shared environment variables:
# This will apply to all services
DATABASE_URL=postgres://localhost:5432/mydb
DEBUG=true
- Start your services:
pmo start
- List your services:
pmo ls
Output:
+---------------------------------------------------------------------------------------------------------------------+
| id | name | pid | uptime | status | cpu | mem | gpu mem | gpu id | user |
|------+-----------+------------+----------+-------------+------------+------------+------------+--------+------------|
| 0 | vllm-1 | 482950 | 25m 15s | running | 0.0% | 1mb | 20632 MiB | 0 | simpx |
| 1 | sglang-1 | 482952 | 25m 15s | running | 0.0% | 1mb | 20632 MiB | 1 | simpx |
| 2 | vllm-2 | 482954 | 25m 15s | running | 0.0% | 1mb | 20632 MiB | 2 | simpx |
+---------------------------------------------------------------------------------------------------------------------+
Commands
pmo start [all | service-name | service-id]
pmo stop [all | service-name | service-id]
pmo restart [all | service-name | service-id]
pmo log [all | service-name | service-id]
pmo flush [all | service-name | service-id]
pmo dry-run [all | service-name | service-id]
pmo ls
Configuration
The pmo.yml file supports two formats:
- Simple:
service-name: command - Detailed:
service-name: cmd: command cwd: working directory (optional) env: KEY: value
PMO manages runtime data in the .pmo directory with logs and PID files.
Multi-machine Support
PMO now supports multiple machines sharing the same configuration through a shared filesystem (like NAS). Each machine will store its process information in a hostname-specific directory:
.pmo/
hostname1/
pids/
logs/
hostname2/
pids/
logs/
This allows processes on different machines to be managed separately even when sharing the same configuration files.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pmo-0.3.17.tar.gz.
File metadata
- Download URL: pmo-0.3.17.tar.gz
- Upload date:
- Size: 35.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b398504714b62858591aed825fe2754f53771403328c883975a3dce1ccfeb907
|
|
| MD5 |
eb0c9339fbe5487efa7ca438eb2d89d2
|
|
| BLAKE2b-256 |
eefb4699c42aa7b86f995bafce1e047e07ac12503a649b84c335c448039700ec
|
File details
Details for the file pmo-0.3.17-py3-none-any.whl.
File metadata
- Download URL: pmo-0.3.17-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48f65477da0c18d65bc2a47b77eb493b9a5d3dbf00742b27fdaf09c184c5eeed
|
|
| MD5 |
7d77d05cf08268e1cb160219440bc9c0
|
|
| BLAKE2b-256 |
8d4a20230316a6a03c52686635b26a6e02ce62171e5fd7a81ec9a3649716191f
|