Skip to main content

simple process manager

Project description

PMO

A simple process management tool for Linux, similar to PM2, designed to simplify application deployment and management.

Features

  • Start, stop, and restart services defined in a pmo.yml configuration file
  • View real-time logs with service name highlighting
  • Automatic process supervision and PID management
  • Environment variable support
  • Simple YAML configuration

Installation

# Using pip
pip install pmo

# From source
git clone https://github.com/yourusername/pmo.git
cd pmo
pip install -e .

Usage

Quick Start

  1. Create a pmo.yml file in your project:
# Basic format: service-name: command
web-server: node server.js

# Detailed format
api:
  cmd: python api.py
  cwd: ./api
  env:
    NODE_ENV: production
  1. Start your services:
pmo start

Core Commands

  • Start Services:

    pmo start [all | service-name]
    

    Starts all services or a specific service by name.

  • Stop Services:

    pmo stop [all | service-name]
    

    Stops all running services or a specific service by name.

  • Restart Services:

    pmo restart [all | service-name]
    

    Restarts all services or a specific service by name.

  • View Service Logs:

    pmo log [all | service-name]
    

    Shows logs in real-time (similar to tail -f).

  • List Services:

    pmo ps
    

    Shows status of all configured services.

Configuration

pmo.yml

The pmo.yml file supports two formats:

  1. Simple format:

    service-name: command to run
    
  2. Detailed format:

    service-name:
      cmd: command to run
      cwd: working directory (optional)
      env:
        ENV_VAR1: value1
        ENV_VAR2: value2
    

Note: The name "pmo" is reserved and cannot be used as a service name.

Directory Structure

PMO creates a .pmo directory to store runtime information:

.pmo/
├── logs/
│   ├── [service-name]-out.log    # Standard output logs
│   └── [service-name]-error.log  # Error logs
├── pids/
│   └── [service-name].pid        # Process ID files

License

MIT

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

pmo-0.3.2.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

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

pmo-0.3.2-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file pmo-0.3.2.tar.gz.

File metadata

  • Download URL: pmo-0.3.2.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pmo-0.3.2.tar.gz
Algorithm Hash digest
SHA256 1dca66a41eaa8180d0d6c683dbaba2915cf13a8f8e3886c898e4152b6bb02534
MD5 ef09d04578d6525710fbff345c726803
BLAKE2b-256 0b7f88d42b5dac0353decce062a4d668767082315a6746f6e456cf6cc7d5c3f7

See more details on using hashes here.

File details

Details for the file pmo-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: pmo-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pmo-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b787b95e62e10a05f6631c2af7a0c426dc1341a0036f9ac140aee6bdeb3b114b
MD5 79ccd0efb01e1500f0fdf5a218e9cc60
BLAKE2b-256 1cba51752b1a45586d93a7dffd794e3f118676430737d29742d302a5a18bd600

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