SPB Git
5.9 KB · 52 lines json
1{2  "slug": "pm2",3  "name": "PM2",4  "aliases": ["pm2", "PM2 Process Manager"],5  "vendor": { "name": "Keymetrics (Unitech)", "slug": "keymetrics", "website": "https://pm2.keymetrics.io" },6  "homepage_url": "https://pm2.keymetrics.io/",7  "docs_url": "https://pm2.keymetrics.io/docs/usage/quick-start/",8  "repo_url": "https://github.com/Unitech/pm2",9  "pricing_url": "https://pm2.io/pricing",10  "license_url": "https://github.com/Unitech/pm2/blob/master/GNU-AGPL-3.0.txt",11  "product_type": "cli-tool",12  "product_status": "active",13  "summary": "Production process manager for Node.js and other long-running programs with cluster mode, log handling, restart policies and boot-time startup scripts",14  "description": "PM2 is an open-source process manager, published by Keymetrics under the AGPL-3.0 license, that keeps server applications running: it starts them, restarts them on crash or memory limit, rotates and tails their logs, and generates startup scripts so processes return after a reboot. Although written for Node.js, it supervises any executable, including Python, shell and binary programs, through its ecosystem configuration file.\n\nIts distinctive feature is cluster mode, which forks a Node.js application across all CPU cores behind a shared port and allows zero-downtime reloads. An ecosystem file (JavaScript, JSON or YAML) declares every process with environment variables, working directory, instance count and log paths, so a server's full set of services can be versioned and brought up with a single `pm2 start`. The `pm2 startup` command writes a systemd or launchd unit, and `pm2 save` persists the current process list. A companion SaaS, PM2 Plus and PM2 Enterprise at pm2.io, adds remote monitoring and metrics on a subscription basis; the CLI itself needs no account.\n\nPM2 suits small and medium deployments where a handful of services run directly on a host rather than inside containers, which is common on VPSs and in homelab or Mac-mini clusters. It does not isolate processes, manage dependencies or schedule across machines; those jobs belong to containers or an orchestrator. The AGPL license and the Node.js runtime requirement are worth noting for redistribution and minimal servers.",15  "capabilities": ["Supervise and auto-restart processes with crash, memory and cron-based policies", "Cluster mode that load-balances a Node.js app across CPU cores with zero-downtime reload", "Ecosystem configuration file describing many processes and environments", "Log aggregation, rotation (module) and real-time tailing", "Startup script generation for systemd, launchd and other init systems", "Deployment helper for pulling and restarting from a git remote", "Optional remote monitoring through PM2 Plus"],16  "workflows": ["Keep several web services alive on one Linux or macOS host", "Reload a Node.js API across cores without dropping connections", "Register all services so they return automatically after a reboot", "Tail and rotate logs for a fleet of scripts"],17  "advantages": ["Very small learning curve for Node.js developers", "Runs on macOS and Linux without containers", "Single file describes an entire host's processes", "Mature project with long release history"],18  "limitations": ["AGPL-3.0 license has obligations for modified redistributions", "No isolation or dependency management between processes", "Single-host only; no scheduling across machines", "Requires a Node.js runtime even for non-Node programs"],19  "prerequisites": ["Node.js runtime", "Shell access to the host"],20  "audiences": ["Node.js developers", "Operators of small VPS or on-premises fleets", "Researchers running long-lived services on workstations"],21  "alternatives": ["launchd", "docker", "kubernetes"],22  "comparison_notes": "launchd (macOS) and systemd (Linux) are the native supervisors and need no runtime, but lack cluster mode, unified logs and a cross-platform CLI. Docker restart policies supervise containers rather than bare processes and add isolation at the cost of an image build step. Kubernetes handles the same restart and scaling concerns across a cluster and is the step up once services span many hosts.",23  "categories": [{ "slug": "infrastructure-provisioning", "primary": true, "label": "Process supervision" }],24  "tags": ["process-manager", "nodejs", "cli", "self-hosted", "open-source", "monitoring", "macos", "linux"],25  "use_cases": ["host-web-apps", "monitor-services", "supervise-processes"],26  "operating_systems": ["macos", "linux", "windows"],27  "execution_modes": ["self-hosted", "local"],28  "interfaces": ["cli", "api"],29  "deployment_models": ["on-premises"],30  "integrations": ["systemd", "launchd", "Node.js", "PM2 Plus", "Git"],31  "data_formats": ["ecosystem.config.js", "JSON", "YAML"],32  "languages": ["JavaScript"],33  "source_model": "open-source",34  "license_spdx": "AGPL-3.0-only",35  "pricing_model": ["open-source", "free", "paid"],36  "pricing_checked_at": "2026-11-02",37  "self_hostable": true,38  "sources": [39    { "url": "https://pm2.keymetrics.io/", "type": "official_site", "title": "PM2 - Advanced Production Process Manager for Node.js", "supports": ["name", "summary", "capabilities"], "checked_at": "2026-11-02" },40    { "url": "https://pm2.keymetrics.io/docs/usage/quick-start/", "type": "official_docs", "title": "PM2 Quick Start", "supports": ["capabilities", "workflows", "prerequisites"], "checked_at": "2026-11-02" },41    { "url": "https://github.com/Unitech/pm2/blob/master/GNU-AGPL-3.0.txt", "type": "license_page", "title": "PM2 license (GNU AGPL-3.0)", "supports": ["license_spdx", "source_model"], "checked_at": "2026-11-02" },42    { "url": "https://pm2.io/pricing", "type": "pricing_page", "title": "PM2 Plus pricing", "supports": ["pricing_model"], "checked_at": "2026-11-02", "note": "Pricing concerns the optional PM2 Plus/Enterprise monitoring service, not the CLI." }43  ],44  "confidence": "high",45  "discovery_method": "editorial-research",46  "depth": "deep",47  "editorial_status": "reviewed",48  "visibility": "public",49  "featured": false,50  "author": "batch-B2"51}52
Files · main
Menu

Theme