A lightweight process manager inspired by PM2, but designed primarily for development environments.
start
,stop
, andrestart
services, similar to PM2- Simple YAML configuration
- Real-time logs with highlight
- Environment variable support
- Automatic
.env
file loading
pip install pmo
- Create a
pmo.yml
file 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
.env
file 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 |
+---------------------------------------------------------------------------------------------------------------------+
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
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.
MIT