Python wrapper for PM2
Project description
PM2 Python Library for Process Management
Introduction
This Python library provides a seamless integration with PM2, enabling users to automate the launching and management of processes using PM2 through Python. Designed to cater to developers and system administrators who require a programmable interface to control their processes with the power and flexibility of Python, this library simplifies interactions with PM2, making it more accessible and versatile.
Features
- Easy Process Management: Start, stop, restart, and delete processes with simple Python functions.
- Automatic Process Launch: Automatically launch multiple processes with predefined configurations.
- Real-time Process Monitoring: Retrieve real-time information about process status, CPU, and memory usage.
- Flexible Configuration: Configure processes programmatically, including environment variables, names, and log file locations.
- Event Handling: Listen to and handle PM2 events directly within your Python scripts.
Installation
To install the PM2 Python Library, run the following command:
pip install pm2
Quick Start
To get started with the PM2 Python Library, here's a simple example that demonstrates how to start a process:
from pm2 import PM2, AioPM2
import asyncio
pm2 = PM2()
aiopm2 = AioPM2()
# Sync Methods
def pm2_manager():
# List all processes
processes = pm2.list()
print(processes)
# Start a process
pm2.start(
"your_script.py",
name="Script-Name",
extra_args=["-arg1", "value1"],
name="YourProcessName",
)
# Restart a process
pm2.restart(name="Script-Name") # or pid=12345 or pm_id=1
# Stop a process
pm2.stop(name="Script-Name") # or pid=12345 or pm_id=1
# Delete a process
pm2.delete(name="Script-Name") # or pid=12345 or pm_id=1
# Async Methods
async def pm2_manager():
# List all processes
processes = await aiopm2.list()
print(processes)
# Start a process
await aiopm2.start(
"your_script.py",
name="Script-Name",
extra_args=["-arg1", "value1"],
name="Script-Name",
)
# Restart a process
await aiopm2.restart(name="Script-Name") # or pid=12345 or pm_id=1
# Stop a process
await aiopm2.stop(name="Script-Name") # or pid=12345 or pm_id=1
# Delete a process
await aiopm2.delete(name="Script-Name") # or pid=12345 or pm_id=1
# Run the function
pm2_manager()
# or
asyncio.run(pm2_manager())
Replace 'your_script.py'
, 'Script-Name'
, and the args as necessary to fit your needs.
Contributing
Contributions are welcome! If you would like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature.
- Add your changes and commit them.
- Push to your branch.
- Create a pull request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Thanks to the PM2 team for creating such a powerful process manager.
- This library was inspired by the need to simplify process management in Python projects.
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
Built Distribution
File details
Details for the file pm2-0.0.4.4.tar.gz
.
File metadata
- Download URL: pm2-0.0.4.4.tar.gz
- Upload date:
- Size: 17.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f09ff899a7a31fef0ee0de344688c1fac7243787c6509206c6eac8b87cb8c7d |
|
MD5 | e7681be064c8120af7104bf4c55345f4 |
|
BLAKE2b-256 | a771fb86d8d2745ed32789c16675284b661e32a93b443eb0b48981d12bcf4ba9 |
File details
Details for the file pm2-0.0.4.4-py3-none-any.whl
.
File metadata
- Download URL: pm2-0.0.4.4-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b02b3b1282481c4b62fc3b5e6037a0d1d870d87ce4014722f90e3b15d7fb7e1e |
|
MD5 | c5393af6d2ecad6b5d246929cb54cd93 |
|
BLAKE2b-256 | 08c09a6b119a2f3d765ca1bd0bff10ffb5e4e5d6d2701b4e3d12b0ac959e0ad0 |