Skip to main content

Professional Python wrapper for PM2 (Process Manager 2) with async support

Project description

๐Ÿš€ PM2 Python Library

Professional Python wrapper for PM2 Process Manager

PyPI version Python Support License: GPL v3 Downloads

๐Ÿ”ฅ Project Homepage | ๐Ÿ“š Complete Documentation


โš ๏ธ IMPORTANT: This project received its first major update since January 2024, featuring a complete rewrite from scratch. The previous buggy version has been entirely redesigned and significantly improved. Please refer to the new documentation site for the latest information.

๐ŸŒ Language: ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‡น๐Ÿ‡ท Tรผrkรงe

โœจ Overview

A powerful, production-ready Python library that provides seamless integration with PM2 Process Manager - the industry-standard runtime process manager for Node.js applications. This library extends PM2's capabilities to Python environments, enabling developers and system administrators to programmatically control their processes with the reliability and flexibility of Python.

PM2 is a battle-tested, feature-rich production process manager that has been trusted by thousands of companies worldwide to manage their Node.js applications in production environments. Our Python wrapper brings this enterprise-grade process management power directly to your Python applications and scripts.

๐ŸŽฏ Perfect for: Web applications, microservices, background tasks, data processing pipelines, and production deployments.

๐Ÿšจ New Version Notice

This library received its first major update since January 2024 and has been completely rewritten from scratch to address all issues from the previous version. The new version features:

๐Ÿš€ Key Features

Feature Description
๐Ÿ”„ Complete Process Control Start, stop, restart, reload, and delete processes
โšก Async & Sync Support Both synchronous and asynchronous interfaces
๐Ÿ“Š Real-time Monitoring CPU, memory, uptime, and performance metrics
๐Ÿ›ก๏ธ Production Ready Comprehensive error handling and robust architecture
๐Ÿ”ง Flexible Configuration Environment variables, custom settings, and deployment options
๐Ÿ“ Rich Process Info Detailed insights including logs, status, and health metrics

๐Ÿ“– Documentation

๐Ÿ‘† Please visit our main documentation site for complete information:

๐Ÿ“ฆ Installation

# Install from PyPI (recommended)
pip install pm2

# Or install from source
git clone https://github.com/y4kupkaya/PM2.git
cd PM2
pip install -e .

โšก Quick Start

from pm2 import PM2Manager

# Initialize PM2 manager
pm2 = PM2Manager()

# Start a process
process = pm2.start_app(
    script="app.py",
    name="my-app",
    env={"PORT": "3000"}
)

# Monitor the process
print(f"Status: {process.status}")
print(f"CPU: {process.metrics.cpu}%")
print(f"Memory: {process.metrics.memory_mb} MB")

# List all processes
for proc in pm2.list_processes():
    print(f"{proc.name}: {proc.status}")

๐ŸŒŸ Why Choose PM2 Python Library?

  • ๐ŸŽฏ Production Ready - Battle-tested in production environments
  • ๐Ÿ“ˆ High Performance - Optimized for minimal overhead
  • ๐Ÿ”’ Type Safe - Full type hints and mypy compatibility
  • ๐Ÿงช Well Tested - Comprehensive test suite with 95%+ coverage
  • ๐Ÿ“š Great Documentation - Extensive docs with real-world examples

๐Ÿ“‹ Prerequisites

PM2 must be installed on your system. PM2 is the world's most popular production process manager for Node.js applications, trusted by companies like Microsoft, IBM, and Netflix for managing critical production workloads.

# Install PM2 globally
npm install -g pm2

# Verify installation
pm2 --version

About PM2: PM2 (Process Manager 2) is an advanced, production-grade runtime and process manager for Node.js applications. It provides features like automatic restarts, load balancing, memory monitoring, and seamless deployments. Learn more at pm2.keymetrics.io.

๐Ÿ”ง Advanced Usage

For advanced patterns, async operations, production deployments, and complex configurations, visit our Advanced Usage Guide.

๐Ÿ› Troubleshooting

Having issues? Check our Troubleshooting Guide for solutions to common problems.

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • PM2 Team - For creating the amazing PM2 process manager
  • Community Contributors - Thank you for your valuable contributions
  • Users - For testing and providing feedback to make this library better

๐Ÿ“ž Support


Made with โค๏ธ by Yakup Kaya

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

pm2-1.0.0.tar.gz (42.7 kB view details)

Uploaded Source

Built Distribution

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

pm2-1.0.0-py3-none-any.whl (38.5 kB view details)

Uploaded Python 3

File details

Details for the file pm2-1.0.0.tar.gz.

File metadata

  • Download URL: pm2-1.0.0.tar.gz
  • Upload date:
  • Size: 42.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for pm2-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6ec6efa707a6683e3b1f55e4651370e72a5a02525ab46a813e9608965912efc0
MD5 401088c38df16b5b9aea17f5fe65f137
BLAKE2b-256 0229bd00d21b816852b50a81db119c7b7aca7088e195ca3ad8936bf574b8d89e

See more details on using hashes here.

File details

Details for the file pm2-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pm2-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 38.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for pm2-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80930d92c5750f89397ff1e25a18dc0a1d69bb43080a581a54c0131047979cd3
MD5 26778b2f18ebbb1abb7d84a8ec543793
BLAKE2b-256 b20fa0c96fac75a7204057684f1686dc97d536b7ad871c99d8656174ce6a0ce2

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