pmdaemon 0.1.4

PMDaemon - A high-performance, cross-platform process manager built in Rust with advanced port management and monitoring capabilities
Documentation
<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.8.0">
<title data-rh="true">PMDaemon - Advanced Process Manager | PMDaemon</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://entrepeneur4lyf.github.io/pmdaemon/img/pmdaemon-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://entrepeneur4lyf.github.io/pmdaemon/img/pmdaemon-social-card.jpg"><meta data-rh="true" property="og:url" content="https://entrepeneur4lyf.github.io/pmdaemon/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="PMDaemon - Advanced Process Manager | PMDaemon"><meta data-rh="true" name="description" content="A high-performance process manager built in Rust, inspired by PM2 with innovative features that exceed the original."><meta data-rh="true" property="og:description" content="A high-performance process manager built in Rust, inspired by PM2 with innovative features that exceed the original."><link data-rh="true" rel="icon" href="/pmdaemon/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://entrepeneur4lyf.github.io/pmdaemon/"><link data-rh="true" rel="alternate" href="https://entrepeneur4lyf.github.io/pmdaemon/" hreflang="en"><link data-rh="true" rel="alternate" href="https://entrepeneur4lyf.github.io/pmdaemon/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://O2R9OPMFS1-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n   <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n   <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n   <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/pmdaemon/</span> </p>\n   <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",(function(){void 0===window.docusaurus&&insertBanner()}))</script><link rel="alternate" type="application/rss+xml" href="/pmdaemon/changelog/rss.xml" title="PMDaemon Changelog RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/pmdaemon/changelog/atom.xml" title="PMDaemon Changelog Atom Feed">
<link rel="alternate" type="application/json" href="/pmdaemon/changelog/feed.json" title="PMDaemon Changelog JSON Feed">




<link rel="search" type="application/opensearchdescription+xml" title="PMDaemon" href="/pmdaemon/opensearch.xml"><link rel="stylesheet" href="/pmdaemon/assets/css/styles.86c008f8.css">
<script src="/pmdaemon/assets/js/runtime~main.8a2f3387.js" defer="defer"></script>
<script src="/pmdaemon/assets/js/main.bb868f87.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t="dark";var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/pmdaemon/"><div class="navbar__logo"><img src="/pmdaemon/img/logo-small.png" alt="PMDaemon Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/pmdaemon/img/logo-small.png" alt="PMDaemon Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">Home</b></a><a class="navbar__item navbar__link" href="/pmdaemon/docs/getting-started/introduction">Documentation</a><a class="navbar__item navbar__link" href="/pmdaemon/docs/api/rest-api">API</a><a class="navbar__item navbar__link" href="/pmdaemon/docs/examples/use-cases">Examples</a><a class="navbar__item navbar__link" href="/pmdaemon/changelog">Changelog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/entrepeneur4lyf/pmdaemon" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><a href="https://crates.io/crates/pmdaemon" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Crates.io<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><header class="hero hero--primary heroBanner_qdFl"><div class="container"><h1 class="hero__title">PMDaemon</h1><p class="hero__subtitle">Advanced Process Manager - PM2 evolved in Rust</p><div class="buttons_AeoN"><a class="button button--secondary button--lg" href="/pmdaemon/docs/getting-started/introduction">Get Started - 5min ⏱️</a><a class="button button--outline button--secondary button--lg" style="margin-left:1rem" href="/pmdaemon/docs/getting-started/quick-start">Quick Start</a></div><div class="badges_jbXY"><img src="https://img.shields.io/github/stars/entrepeneur4lyf/pmdaemon?style=flat-square" alt="GitHub Stars"><img src="https://img.shields.io/crates/v/pmdaemon?style=flat-square" alt="Crates.io Version"><img src="https://img.shields.io/crates/d/pmdaemon?style=flat-square" alt="Crates.io Downloads"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License"><img src="https://img.shields.io/github/actions/workflow/status/entrepeneur4lyf/pmdaemon/ci.yml?branch=main&amp;style=flat-square" alt="Build Status"><img src="https://img.shields.io/badge/rust-1.70+-orange.svg?style=flat-square" alt="Rust"><img src="https://img.shields.io/badge/tests-272%20passing-brightgreen.svg?style=flat-square" alt="Tests"></div></div></header><main><section class="features_t9lD"><div class="container"><div class="row"><div class="col col--4"><div class="text--center"><svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200" class="featureSvg_GfXr" role="img"><defs><linearGradient id="a" x1="0%" x2="100%" y1="0%" y2="100%"><stop offset="0%" style="stop-color:#2e8555;stop-opacity:1"></stop><stop offset="100%" style="stop-color:#25c2a0;stop-opacity:1"></stop></linearGradient></defs><rect width="200" height="200" fill="#f8f9fa" rx="20"></rect><rect width="40" height="30" x="30" y="50" fill="url(#a)" rx="5"></rect><text x="50" y="70" fill="#fff" font-size="12" font-weight="bold" text-anchor="middle">3000</text><rect width="40" height="30" x="80" y="50" fill="url(#a)" rx="5"></rect><text x="100" y="70" fill="#fff" font-size="12" font-weight="bold" text-anchor="middle">3001</text><rect width="40" height="30" x="130" y="50" fill="url(#a)" rx="5"></rect><text x="150" y="70" fill="#fff" font-size="12" font-weight="bold" text-anchor="middle">3002</text><path stroke="#2e8555" stroke-width="3" marker-end="url(#b)" d="M100 90v20"></path><circle cx="50" cy="130" r="15" fill="#25c2a0"></circle><text x="50" y="135" fill="#fff" font-size="10" font-weight="bold" text-anchor="middle">P1</text><circle cx="100" cy="130" r="15" fill="#25c2a0"></circle><text x="100" y="135" fill="#fff" font-size="10" font-weight="bold" text-anchor="middle">P2</text><circle cx="150" cy="130" r="15" fill="#25c2a0"></circle><text x="150" y="135" fill="#fff" font-size="10" font-weight="bold" text-anchor="middle">P3</text><path stroke="#666" stroke-dasharray="3,3" stroke-width="2" d="M50 80v35M100 80v35M150 80v35"></path><text x="100" y="25" fill="#2e8555" font-size="16" font-weight="bold" text-anchor="middle">Port Management</text><text x="100" y="170" fill="#666" font-size="12" text-anchor="middle">Auto Port Distribution</text><defs><marker id="b" markerHeight="7" markerWidth="10" orient="auto" refX="9" refY="3.5"><path fill="#2e8555" d="m0 0 10 3.5L0 7z"></path></marker></defs></svg></div><div class="text--center padding-horiz--md"><h3>🚀 Advanced Port Management</h3><p>Automatic port range distribution for clusters, auto-assignment from ranges, built-in conflict detection, and runtime port overrides. Features that go beyond PM2.</p></div></div><div class="col col--4"><div class="text--center"><svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200" class="featureSvg_GfXr" role="img"><defs><linearGradient id="a" x1="0%" x2="100%" y1="0%" y2="100%"><stop offset="0%" style="stop-color:#28a745;stop-opacity:1"></stop><stop offset="100%" style="stop-color:#20c997;stop-opacity:1"></stop></linearGradient></defs><rect width="200" height="200" fill="#f8f9fa" rx="20"></rect><rect width="100" height="60" x="50" y="40" fill="url(#a)" rx="10"></rect><rect width="80" height="40" x="60" y="50" fill="#fff" rx="5"></rect><path fill="none" stroke="#28a745" stroke-width="3" d="M70 70h15l5-10 5 20 5-30 5 40 5-20h20"></path><circle cx="100" cy="130" r="25" fill="#28a745"></circle><path fill="none" stroke="#fff" stroke-linecap="round" stroke-width="4" d="m88 130 9 9 15-18"></path><rect width="60" height="20" x="30" y="160" fill="#007bff" rx="10"></rect><text x="60" y="173" fill="#fff" font-size="10" font-weight="bold" text-anchor="middle">HTTP</text><rect width="60" height="20" x="110" y="160" fill="#6f42c1" rx="10"></rect><text x="140" y="173" fill="#fff" font-size="10" font-weight="bold" text-anchor="middle">SCRIPT</text><text x="100" y="25" fill="#28a745" font-size="16" font-weight="bold" text-anchor="middle">Health Checks</text><circle cx="170" cy="60" r="8" fill="#28a745"></circle><circle cx="170" cy="80" r="8" fill="#28a745"></circle><circle cx="170" cy="100" r="8" fill="#ffc107"></circle></svg></div><div class="text--center padding-horiz--md"><h3>🏥 Health Checks &amp; Monitoring</h3><p>HTTP and script-based health checks with configurable timeouts and retries. Blocking start commands that wait for processes to be ready. Real-time monitoring with beautiful displays.</p></div></div><div class="col col--4"><div class="text--center"><svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200" class="featureSvg_GfXr" role="img"><defs><linearGradient id="a" x1="0%" x2="100%" y1="0%" y2="100%"><stop offset="0%" style="stop-color:#ce422b;stop-opacity:1"></stop><stop offset="100%" style="stop-color:#f74c00;stop-opacity:1"></stop></linearGradient></defs><rect width="200" height="200" fill="#f8f9fa" rx="20"></rect><circle cx="100" cy="100" r="40" fill="url(#a)"></circle><g fill="url(#a)"><rect width="10" height="15" x="95" y="50" rx="2"></rect><rect width="10" height="15" x="95" y="135" rx="2"></rect><rect width="15" height="10" x="50" y="95" rx="2"></rect><rect width="15" height="10" x="135" y="95" rx="2"></rect><rect width="12" height="8" x="125" y="65" rx="2" transform="rotate(45 131 69)"></rect><rect width="12" height="8" x="63" y="65" rx="2" transform="rotate(-45 69 69)"></rect><rect width="12" height="8" x="125" y="127" rx="2" transform="rotate(-45 131 131)"></rect><rect width="12" height="8" x="63" y="127" rx="2" transform="rotate(45 69 131)"></rect></g><circle cx="100" cy="100" r="20" fill="#fff"></circle><g fill="#ce422b"><path d="m100 85 5 10H95z"></path><text x="100" y="110" font-size="12" font-weight="bold" text-anchor="middle">FAST</text></g><g stroke="#f74c00" stroke-width="3" opacity="0.7"><path d="M20 40h20M25 50h20M30 60h20M160 140h20M155 150h20M150 160h20"></path></g><text x="100" y="25" fill="#ce422b" font-size="16" font-weight="bold" text-anchor="middle">Rust Performance</text><text x="100" y="180" fill="#666" font-size="12" text-anchor="middle">Memory Safe • Zero Cost</text></svg></div><div class="text--center padding-horiz--md"><h3>⚡ Rust Performance</h3><p>Built with Rust for memory safety and blazing performance. Async/await architecture with comprehensive error handling and production-ready reliability.</p></div></div><div class="col col--4"><div class="text--center"><svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200" class="featureSvg_GfXr" role="img"><defs><linearGradient id="a" x1="0%" x2="100%" y1="0%" y2="100%"><stop offset="0%" style="stop-color:#007bff;stop-opacity:1"></stop><stop offset="100%" style="stop-color:#0056b3;stop-opacity:1"></stop></linearGradient></defs><rect width="200" height="200" fill="#f8f9fa" rx="20"></rect><rect width="60" height="40" x="70" y="60" fill="url(#a)" rx="8"></rect><text x="100" y="83" fill="#fff" font-size="12" font-weight="bold" text-anchor="middle">API</text><rect width="35" height="15" x="40" y="120" fill="#28a745" rx="3"></rect><text x="57.5" y="130" fill="#fff" font-size="8" font-weight="bold" text-anchor="middle">GET</text><rect width="35" height="15" x="82.5" y="120" fill="#007bff" rx="3"></rect><text x="100" y="130" fill="#fff" font-size="8" font-weight="bold" text-anchor="middle">POST</text><rect width="35" height="15" x="125" y="120" fill="#dc3545" rx="3"></rect><text x="142.5" y="130" fill="#fff" font-size="8" font-weight="bold" text-anchor="middle">DEL</text><circle cx="50" cy="50" r="12" fill="#6f42c1"></circle><text x="50" y="55" fill="#fff" font-size="8" font-weight="bold" text-anchor="middle">WS</text><path fill="none" stroke="#6f42c1" stroke-dasharray="3,3" stroke-width="2" d="M62 50q13-5 23 15"></path><rect width="25" height="20" x="20" y="150" fill="#6c757d" rx="3"></rect><text x="32.5" y="163" fill="#fff" font-size="8" text-anchor="middle">WEB</text><rect width="25" height="20" x="87.5" y="150" fill="#6c757d" rx="3"></rect><text x="100" y="163" fill="#fff" font-size="8" text-anchor="middle">CLI</text><rect width="25" height="20" x="155" y="150" fill="#6c757d" rx="3"></rect><text x="167.5" y="163" fill="#fff" font-size="8" text-anchor="middle">APP</text><path stroke="#007bff" stroke-width="2" d="M32.5 150 85 100M100 150v-50M167.5 150 115 100"></path><text x="100" y="25" fill="#007bff" font-size="16" font-weight="bold" text-anchor="middle">Web API</text><circle cx="150" cy="50" r="8" fill="#28a745"></circle><circle cx="150" cy="50" r="12" fill="none" stroke="#28a745" stroke-width="2" opacity="0.5"><animate attributeName="r" dur="2s" repeatCount="indefinite" values="8;16;8"></animate><animate attributeName="opacity" dur="2s" repeatCount="indefinite" values="0.5;0;0.5"></animate></circle></svg></div><div class="text--center padding-horiz--md"><h3>🌐 Modern Web API</h3><p>Full REST API with PM2-compatible responses, real-time WebSocket updates, and production-ready web server with CORS and security headers.</p></div></div><div class="col col--4"><div class="text--center"><svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200" class="featureSvg_GfXr" role="img"><defs><linearGradient id="a" x1="0%" x2="100%" y1="0%" y2="100%"><stop offset="0%" style="stop-color:#343a40;stop-opacity:1"></stop><stop offset="100%" style="stop-color:#495057;stop-opacity:1"></stop></linearGradient></defs><rect width="200" height="200" fill="#f8f9fa" rx="20"></rect><rect width="140" height="100" x="30" y="40" fill="url(#a)" rx="8"></rect><rect width="140" height="20" x="30" y="40" fill="#6c757d" rx="8 8 0 0"></rect><circle cx="45" cy="50" r="3" fill="#dc3545"></circle><circle cx="55" cy="50" r="3" fill="#ffc107"></circle><circle cx="65" cy="50" r="3" fill="#28a745"></circle><text x="40" y="75" fill="#28a745" font-family="monospace" font-size="10">$ pmdaemon list</text><path fill="#28a745" d="M40 80h120v8H40z" opacity="0.3"></path><path fill="#007bff" d="M40 90h120v8H40z" opacity="0.3"></path><path fill="#28a745" d="M40 100h120v8H40z" opacity="0.3"></path><path fill="#ffc107" d="M40 110h120v8H40z" opacity="0.3"></path><circle cx="45" cy="84" r="2" fill="#28a745"></circle><circle cx="45" cy="94" r="2" fill="#007bff"></circle><circle cx="45" cy="104" r="2" fill="#28a745"></circle><circle cx="45" cy="114" r="2" fill="#ffc107"></circle><rect width="100" height="30" x="50" y="150" fill="#e9ecef" rx="5"></rect><text x="100" y="167" fill="#495057" font-size="12" font-weight="bold" text-anchor="middle">Enhanced CLI</text><circle cx="60" cy="175" r="2" fill="#28a745"></circle><text x="68" y="178" fill="#495057" font-size="8">Color coding</text><circle cx="120" cy="175" r="2" fill="#007bff"></circle><text x="128" y="178" fill="#495057" font-size="8">Real-time</text><text x="100" y="25" fill="#343a40" font-size="16" font-weight="bold" text-anchor="middle">Enhanced CLI</text><text x="40" y="130" fill="#6c757d" font-family="monospace" font-size="8">$ pmdaemon monit --interval 1</text></svg></div><div class="text--center padding-horiz--md"><h3>🔧 Enhanced CLI</h3><p>Familiar PM2-like commands with enhancements: bulk deletion, status-based operations, configurable monitoring intervals, and beautiful table formatting.</p></div></div><div class="col col--4"><div class="text--center"><svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200" class="featureSvg_GfXr" role="img"><defs><linearGradient id="a" x1="0%" x2="100%" y1="0%" y2="100%"><stop offset="0%" style="stop-color:#6f42c1;stop-opacity:1"></stop><stop offset="100%" style="stop-color:#8e44ad;stop-opacity:1"></stop></linearGradient></defs><rect width="200" height="200" fill="#f8f9fa" rx="20"></rect><path fill="url(#a)" stroke="#6f42c1" stroke-width="2" d="m100 40 30 15v45q0 20-30 30-30-10-30-30V55Z"></path><path fill="none" stroke="#fff" stroke-linecap="round" stroke-width="4" d="m85 85 10 10 20-20"></path><rect width="30" height="15" x="40" y="140" fill="#28a745" rx="3"></rect><text x="55" y="150" fill="#fff" font-size="8" font-weight="bold" text-anchor="middle">267</text><text x="55" y="165" fill="#28a745" font-size="8" text-anchor="middle">TESTS</text><rect width="30" height="15" x="85" y="140" fill="#007bff" rx="3"></rect><text x="100" y="150" fill="#fff" font-size="8" font-weight="bold" text-anchor="middle">ERR</text><text x="100" y="165" fill="#007bff" font-size="8" text-anchor="middle">HANDLE</text><rect width="30" height="15" x="130" y="140" fill="#dc3545" rx="3"></rect><text x="145" y="150" fill="#fff" font-size="8" font-weight="bold" text-anchor="middle">SEC</text><text x="145" y="165" fill="#dc3545" font-size="8" text-anchor="middle">SAFE</text><text x="100" y="25" fill="#6f42c1" font-size="16" font-weight="bold" text-anchor="middle">Production Ready</text><text x="100" y="180" fill="#666" font-size="12" text-anchor="middle">Robust • Tested • Secure</text></svg></div><div class="text--center padding-horiz--md"><h3>📊 Production Ready</h3><p>Comprehensive test suite (267 tests), robust error handling, configuration persistence, and ecosystem file support with schema validation.</p></div></div></div></div></section><section class="quickExample__xKm"><div class="container"><div class="row"><div class="col col--6"><h2>🚀 Get Started in Seconds</h2><p>PMDaemon provides a familiar PM2-like interface with powerful enhancements. Start managing your processes immediately with advanced port management, health checks, and real-time monitoring.</p></div><div class="col col--6"><div class="command-example"><pre><code># Install PMDaemon
cargo install pmdaemon

# Start a clustered application
pmdaemon start app.js \
  --instances 4 \
  --port 3000-3003 \
  --health-check-url http://localhost:3000/health

# Monitor in real-time
pmdaemon monit</code></pre></div></div></div></div></section><section class="advantages_RhrK"><div class="container"><h2 class="text--center">Why Choose PMDaemon?</h2><div class="row"><div class="col col--4"><div class="feature-card"><h3>🎯 Beyond PM2</h3><p>Advanced port management with ranges, auto-assignment, and conflict detection. Health checks with HTTP and script validation. Features PM2 doesn&#x27;t have.</p></div></div><div class="col col--4"><div class="feature-card"><h3>⚡ Rust Performance</h3><p>Built with Rust for memory safety and blazing performance. Async/await architecture with Tokio for efficient resource usage.</p></div></div><div class="col col--4"><div class="feature-card"><h3>🔧 Production Ready</h3><p>Comprehensive test suite (272 tests), robust error handling, and production-grade web API with WebSocket support.</p></div></div></div></div></section></main></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/pmdaemon/docs/getting-started/introduction">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/pmdaemon/docs/cli/commands">CLI Reference</a></li><li class="footer__item"><a class="footer__link-item" href="/pmdaemon/docs/api/rest-api">API Documentation</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/entrepeneur4lyf/pmdaemon/issues" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub Issues<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/entrepeneur4lyf/pmdaemon/discussions" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub Discussions<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://x.com/entrepeneur4lyf" target="_blank" rel="noopener noreferrer" class="footer__link-item">X<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/pmdaemon/changelog">Changelog</a></li><li class="footer__item"><a href="https://github.com/entrepeneur4lyf/pmdaemon" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://docs.rs/pmdaemon" target="_blank" rel="noopener noreferrer" class="footer__link-item">Rust Docs<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2025 PMDaemon. Built with Docusaurus.</div></div></div></footer></div>
</body>
</html>