[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1060":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":36,"discoverSource":37},1060,"pm2","Unitech\u002Fpm2","Unitech","Node.js Production Process Manager with a built-in Load Balancer.","https:\u002F\u002Fpm2.keymetrics.io\u002Fdocs\u002Fusage\u002Fquick-start\u002F",null,"JavaScript",43200,2712,628,1010,0,2,78,78.8,"Other",false,"master",[24,25,26,27,28,29,30,5,31,32],"command-line","command-line-tool","deploy","load-balancer","monitoring","node","nodejs","process-manager","production","2026-06-12 04:00:07","\u003Cdiv align=\"center\">\n \u003Cbr\u002F>\n\n![https:\u002F\u002Fraw.githubusercontent.com\u002FUnitech\u002Fpm2\u002Fmaster\u002Fpres\u002Fpm2-logo-2.png](https:\u002F\u002Fraw.githubusercontent.com\u002FUnitech\u002Fpm2\u002Fmaster\u002Fpres\u002Fpm2-logo-2.png)\n\n\u003Cb>P\u003C\u002Fb>(rocess) \u003Cb>M\u003C\u002Fb>(anager) \u003Cb>2\u003C\u002Fb>\u003Cbr\u002F>\n  \u003Ci>Runtime Edition\u003C\u002Fi>\n\u003Cbr\u002F>\u003Cbr\u002F>\n\n\n\u003Ca title=\"PM2 Downloads\" href=\"https:\u002F\u002Fnpm-stat.com\u002Fcharts.html?package=pm2&from=2018-01-01&to=2023-08-01\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fpm2\" alt=\"Downloads per Month\"\u002F>\n\u003C\u002Fa>\n\n\u003Ca title=\"PM2 Downloads\" href=\"https:\u002F\u002Fnpm-stat.com\u002Fcharts.html?package=pm2&from=2018-01-01&to=2023-08-01\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdy\u002Fpm2\" alt=\"Downloads per Year\"\u002F>\n\u003C\u002Fa>\n\n\u003Ca href=\"https:\u002F\u002Fbadge.fury.io\u002Fjs\u002Fpm2\" title=\"NPM Version Badge\">\n   \u003Cimg src=\"https:\u002F\u002Fbadge.fury.io\u002Fjs\u002Fpm2.svg\" alt=\"npm version\">\n\u003C\u002Fa>\n\n\u003Cbr\u002F>\n\u003Cbr\u002F>\n\u003Cbr\u002F>\n\u003C\u002Fdiv>\n\n\nPM2 is a production process manager for Node.js\u002FBun applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.\n\nStarting an application in production mode is as easy as:\n\n```bash\n$ pm2 start app.js\n```\n\nPM2 is constantly assailed by [a comprehensive test suite](https:\u002F\u002Fgithub.com\u002FUnitech\u002Fpm2\u002Factions\u002Fworkflows\u002Fnode.js.yml).\n\nOfficial website: [https:\u002F\u002Fpm2.keymetrics.io\u002F](https:\u002F\u002Fpm2.keymetrics.io\u002F)\n\nWorks on Linux, macOS, and Windows. Supports Node.js 18+ and Bun 1+.\n\n\n## Installing PM2\n\n### With NPM\n\n```bash\n$ npm install pm2 -g\n```\n\n### With Bun\n\n```bash\n$ bun install pm2 -g\n```\n\nIf you only have Bun installed (no Node.js), symlink `node` to `bun` so PM2's `#!\u002Fusr\u002Fbin\u002Fenv node` shebang resolves to Bun's node-compatibility runtime:\n\n```bash\n$ sudo ln -s $(which bun) \u002Fusr\u002Flocal\u002Fbin\u002Fnode\n```\n\n___\n\nYou can install Node.js easily with [NVM](https:\u002F\u002Fgithub.com\u002Fnvm-sh\u002Fnvm#installing-and-updating) or [FNM](https:\u002F\u002Fgithub.com\u002FSchniz\u002Ffnm) or install Bun with `curl -fsSL https:\u002F\u002Fbun.sh\u002Finstall | bash`\n\n### Start an application\n\nYou can start any application (Node.js, Bun, and also Python, Ruby, binaries in $PATH...) like that:\n\n```bash\n$ pm2 start app.js\n```\n\nYour app is now daemonized, monitored and kept alive forever.\n\n### Managing Applications\n\nOnce applications are started you can manage them easily:\n\n![Process listing](https:\u002F\u002Fgithub.com\u002FUnitech\u002Fpm2\u002Fraw\u002Fmaster\u002Fpres\u002Fpm2-ls-v2.png)\n\nTo list all running applications:\n\n```bash\n$ pm2 list\n```\n\nManaging apps is straightforward:\n\n```bash\n$ pm2 stop     \u003Capp_name|namespace|id|'all'|json_conf>\n$ pm2 restart  \u003Capp_name|namespace|id|'all'|json_conf>\n$ pm2 delete   \u003Capp_name|namespace|id|'all'|json_conf>\n```\n\nTo have more details on a specific application:\n\n```bash\n$ pm2 describe \u003Cid|app_name>\n```\n\nTo monitor logs, custom metrics, application information:\n\n```bash\n$ pm2 monit\n```\n\n[More about Process Management](https:\u002F\u002Fpm2.keymetrics.io\u002Fdocs\u002Fusage\u002Fprocess-management\u002F)\n\n### Cluster Mode: Node.js Load Balancing & Zero Downtime Reload\n\nCluster mode starts multiple Node.js processes and load-balances HTTP\u002FTCP\u002FUDP queries between them. This significantly increases throughput on multi-core machines and improves reliability (faster socket re-balancing in case of unhandled errors).\n\n![Framework supported](https:\u002F\u002Fraw.githubusercontent.com\u002FUnitech\u002Fpm2\u002Fmaster\u002Fpres\u002Fcluster.png)\n\nStarting a Node.js application in cluster mode that will leverage all CPUs available:\n\n```bash\n$ pm2 start api.js -i \u003Cprocesses>\n```\n\n`\u003Cprocesses>` can be `'max'`, `-1` (all cpu minus 1) or a specified number of instances to start.\n\n**Zero Downtime Reload**\n\nHot Reload allows to update an application without any downtime:\n\n```bash\n$ pm2 reload all\n```\n\n[More information about how PM2 makes clustering easy](https:\u002F\u002Fpm2.keymetrics.io\u002Fdocs\u002Fusage\u002Fcluster-mode\u002F)\n\n### Container Support\n\nWith the drop-in replacement command for `node`, called `pm2-runtime`, run your Node.js application in a hardened production environment.\nUsing it is seamless:\n\n```dockerfile\nRUN npm install pm2 -g\nCMD [ \"pm2-runtime\", \"npm\", \"--\", \"start\" ]\n```\n\n[Read More about the dedicated integration](https:\u002F\u002Fpm2.keymetrics.io\u002Fdocs\u002Fusage\u002Fdocker-pm2-nodejs\u002F)\n\n### Host monitoring speedbar\n\nPM2 allows to monitor your host\u002Fserver vitals with a monitoring speedbar.\n\nTo enable host monitoring:\n\n```bash\n$ pm2 set pm2:sysmonit true\n$ pm2 update\n```\n\n![Framework supported](https:\u002F\u002Fraw.githubusercontent.com\u002FUnitech\u002Fpm2\u002Fmaster\u002Fpres\u002Fvitals.png)\n\n### Terminal Based Monitoring\n\n![Monit](https:\u002F\u002Fgithub.com\u002FUnitech\u002Fpm2\u002Fraw\u002Fmaster\u002Fpres\u002Fpm2-monit.png)\n\nMonitor all processes launched straight from the command line:\n\n```bash\n$ pm2 monit\n```\n\n### Log Management\n\nTo consult logs just type the command:\n\n```bash\n$ pm2 logs\n```\n\nStandard, Raw, JSON and formatted output are available.\n\nExamples:\n\n```bash\n$ pm2 logs APP-NAME       # Display APP-NAME logs\n$ pm2 logs --json         # JSON output\n$ pm2 logs --format       # Formated output\n\n$ pm2 flush               # Flush all logs\n$ pm2 reloadLogs          # Reload all logs\n```\n\nTo enable log rotation install the following module\n\n```bash\n$ pm2 install pm2-logrotate\n```\n\n[More about log management](https:\u002F\u002Fpm2.keymetrics.io\u002Fdocs\u002Fusage\u002Flog-management\u002F)\n\n### Startup Scripts Generation\n\nPM2 can generate and configure a Startup Script to keep PM2 and your processes alive at every server restart.\n\nInit Systems Supported: **systemd**, **upstart**, **systemv**, **openrc**, **launchd**, **rcd**, **rcd-openbsd**, **smf**\n\n```bash\n# Generate Startup Script\n$ pm2 startup\n\n# Freeze your process list across server restart\n$ pm2 save\n\n# Remove Startup Script\n$ pm2 unstartup\n```\n\n[More about Startup Scripts Generation](https:\u002F\u002Fpm2.keymetrics.io\u002Fdocs\u002Fusage\u002Fstartup\u002F)\n\n### Updating PM2\n\n```bash\n# Install latest PM2 version\n$ npm install pm2@latest -g\n# Save process list, exit old PM2 & restore all processes\n$ pm2 update\n```\n\n*PM2 updates are seamless*\n\n## PM2+ Monitoring\n\nIf you manage your apps with PM2, PM2+ makes it easy to monitor and manage apps across servers.\n\n![https:\u002F\u002Fapp.pm2.io\u002F](https:\u002F\u002Fpm2.io\u002Fimg\u002Fapp-overview.png)\n\nFeel free to try it:\n\n[Discover the monitoring dashboard for PM2](https:\u002F\u002Fapp.pm2.io\u002F)\n\nThanks in advance and we hope that you like PM2!\n\n## CHANGELOG\n\n[CHANGELOG](https:\u002F\u002Fgithub.com\u002FUnitech\u002Fpm2\u002Fblob\u002Fmaster\u002FCHANGELOG.md)\n\n## Contributors\n\n[Contributors](http:\u002F\u002Fpm2.keymetrics.io\u002Fhall-of-fame\u002F)\n\n## License\n\nPM2 is made available under the terms of the GNU Affero General Public License 3.0 (AGPL 3.0).\nFor other licenses [contact us](mailto:contact@keymetrics.io).\n","PM2 是一个用于 Node.js 和 Bun 应用的生产环境进程管理器，内置负载均衡功能。它能够保持应用持续运行、无停机时间地重新加载，并简化常见的系统管理任务。核心功能包括守护进程、日志管理和自动重启等，支持集群模式下的负载均衡和零停机时间重载。适合在需要高可用性和稳定性的生产环境中使用，如 Web 服务、API 服务器等场景。通过简单的命令行操作即可轻松启动和管理应用，适用于 Linux、macOS 和 Windows 平台。","2026-06-11 02:41:22","top_all"]