| Crates.io | kpm-rs |
| lib.rs | kpm-rs |
| version | 0.1.1 |
| created_at | 2025-09-02 01:18:55.988518+00 |
| updated_at | 2025-09-02 01:24:20.388602+00 |
| description | Kubernetes Process Manager - systemd based PM2 alternative |
| homepage | |
| repository | https://github.com/kyunghyunHan/kpm-rs |
| max_upload_size | |
| id | 1820399 |
| size | 53,299 |
A systemd-based process manager for Linux, written in Rust. Think PM2, but using systemd for rock-solid process management.
cargo install kpm-rs
# Create a new application
kpm new my-web-server --script "node server.js" --env "PORT=3000"
# Start the application
kpm start my-web-server
# View running applications
kpm list
# View application logs
kpm logs my-web-server
# Follow logs in real-time
kpm logs my-web-server --follow
# Stop application
kpm stop my-web-server
# Restart application
kpm restart my-web-server
# Delete application
kpm delete my-web-server
# Basic application
rpm new myapp --script "node app.js"
# With working directory and environment variables
rpm new webapp --script "npm start" --cwd "/var/www/myapp" --env "NODE_ENV=production" --env "PORT=8080"
# Python application
rpm new api --script "python3 main.py" --env "FLASK_ENV=production"
# Start/stop/restart
rpm start myapp
rpm stop myapp
rpm restart myapp
# Stop all applications
rpm stop all
# View detailed info
rpm info myapp
# Monitor all applications
rpm monitor
# Check RPM status
rpm status
# View recent logs
rpm logs myapp
# Follow logs in real-time
rpm logs myapp --follow
# Show specific number of lines
rpm logs myapp --lines 50
RPM creates systemd service files for each application you manage. These services are:
Each application gets a systemd service named rpm-{app-name}.service.
rpm new web-api --script "node server.js" --cwd "/home/user/myproject" --env "NODE_ENV=production" --env "PORT=3000"
rpm start web-api
rpm new flask-app --script "python3 -m flask run --host=0.0.0.0 --port=5000" --env "FLASK_ENV=production"
rpm start flask-app
rpm new rust-service --script "./target/release/myapp" --env "RUST_LOG=info"
rpm start rust-service
Applications are stored in ~/.rpm/apps.json. Service files are created in /etc/systemd/system/.
| Feature | PM2 | RPM |
|---|---|---|
| Process Management | ✅ | ✅ |
| Auto-restart | ✅ | ✅ (systemd) |
| Log Management | ✅ | ✅ (journald) |
| Boot Persistence | ✅ | ✅ (systemd) |
| Cluster Mode | ✅ | ❌ |
| Memory Usage | Higher | Lower |
| System Integration | Partial | Full (systemd) |
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT OR Apache-2.0 license.