PM2入门教程
PM2是带有内置负载平衡器的Node.js应用程序的生产过程管理器。它使您可以使应用程序永远保持活动状态,无需停机即可重新加载它们,并简化常见的系统管理任务。
以生产模式启动应用程序很容易:
$ pm2 start app.js
PM2不断受到1800多次测试的袭击。
官方网站:https : //pm2.keymetrics.io/
在Linux(稳定)和macOS(稳定)和Windows(稳定)上工作。从Node.js 8.X开始支持所有Node.js版本。
安装PM2
使用NPM:
$ npm install pm2 -g
或者,如果您没有安装Node.js:
wget -qO- https://getpm2.com/install.sh | bash
启动应用
您可以像这样启动任何应用程序(Node.js,Python,Ruby,$ PATH中的二进制文件...):
$ pm2 start app.js
现在,您的应用程序将被守护,监控并永远保持活动状态。
管理应用程式
启动应用程序后,您可以轻松管理它们:
列出所有正在运行的应用程序:
$ pm2 list
管理应用程序非常简单:
$ pm2 stop <app_name|namespace|id|'all'|json_conf>
$ pm2 restart <app_name|namespace|id|'all'|json_conf>
$ pm2 delete <app_name|namespace|id|'all'|json_conf>
要获得有关特定应用程序的更多详细信息,请执行以下操作:
$ pm2 describe <id|app_name>
要监视日志,自定义指标,应用程序信息:
$ pm2 monit
集群模式:Node.js负载平衡和零宕机时间重新加载
群集模式是启动Node.js应用程序时的一种特殊模式,它启动多个进程并在它们之间负载均衡HTTP / TCP / UDP查询。这样可以提高整体性能(在16核计算机上提高10倍)和可靠性(在发生未处理错误的情况下,套接字重新平衡速度更快)。
在群集模式下启动将利用所有可用CPU的Node.js应用程序:
$ pm2 start api.js -i <进程数>
<processes>
可以是'max'
,-1
(所有cpu减1)或要启动的指定数量的实例。
零停机重载
热重装允许更新应用程序而不会造成任何停机:
$ pm2 reload all
由所有主要的Node.js框架和任何Node.js应用程序无缝支持,而无需进行任何代码更改:
容器支持
使用node
名为的插入替换命令,pm2-runtime
在强化的生产环境中运行Node.js应用程序。使用它是无缝的:
RUN npm install pm2 -g
CMD [ "pm2-runtime", "npm", "--", "start" ]
基于终端的监控
监视直接从命令行启动的所有进程:
$ pm2 monit
日志管理
要查询日志,只需键入以下命令:
$ pm2 logs
提供标准,原始,JSON和格式化输出。
例子:
$ pm2 logs APP-NAME # Display APP-NAME logs
$ pm2 logs --json # JSON output
$ pm2 logs --format # Formated output
$ pm2 flush # Flush all logs
$ pm2 reloadLogs # Reload all logs
启动脚本生成
PM2可以生成并配置启动脚本,以在每次服务器重新启动时使PM2和您的进程保持活动状态。
支持的Init Systems:systemd,upstart,launchd,rc.d
#生成启动脚本
$ pm2 startup
#在服务器重启期间冻结您的进程列表
$ pm2 save
#删除启动脚本
$ pm2 unstartup
# Generate Startup Script
$ pm2 startup
# Freeze your process list across server restart
$ pm2 save
# Remove Startup Script
$ pm2 unstartup
PM2模块
PM2嵌入了一个简单而强大的模块系统。安装模块非常简单:
$ pm2 install <模块名称>
以下是一些与PM2兼容的模块(由PM2管理的独立Node.js应用程序):
pm2-logrotate自动旋转日志并限制日志大小
pm2-server-monit通过20多种指标和8个操作来监视当前服务器
更新PM2
#安装最新的PM2版本
$ npm install pm2 @ latest -g
#保存进程列表,退出旧的PM2并恢复所有进程
$ pm2 update
# Install latest PM2 version
$ npm install pm2@latest -g
# Save process list, exit old PM2 & restore all processes
$ pm2 update
PM2更新是无缝的
PM2 +监控
如果您使用PM2管理应用程序,则PM2 +可以轻松地跨服务器监视和管理应用程序。随意尝试:
在此先感谢您,我们希望您喜欢PM2!
更新日志
贡献者
执照
PM2根据GNU Affero通用公共许可证3.0(AGPL 3.0)的条款提供。对于其他许可证,请与我们联系。