PM2是Keymetrics公司开发的Node.js流程管理器。

PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。我们都知道nodejs是单进程执行的,当程序出现错误死掉之后需要能够自动,这时候就需要PM2了。进程管理工具也有其他选择,例如Python开发的Supervisor等等…

PM2 的特点:
工具小巧
内建负载均衡(使用Node cluster 集群模块)
后台运行
具有Ubuntu和CentOS 的启动脚本
停止不稳定的进程(避免无限循环)
控制台检测
提供 HTTP API
远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )

一、安装

最新的PM2版本可通过NPM或Yarn安装:

$ npm install pm2@latest -g
# or
$ yarn global add pm2

二、启动应用

启动,守护和监视应用程序的最简单方法是使用以下命令行:

$ pm2 start app.js

或轻松启动任何其他应用程序:

$ pm2 start bashscript.sh
$ pm2 start python-app.py --watch
$ pm2 start binary-file -- --port 1520

可以传递给CLI的一些选项:

# Specify an app name
--name <app_name>

# Watch and Restart app when files change
--watch

# Set memory threshold for app reload
--max-memory-restart <200MB>

# Specify log file
--log <log_path>

# Pass extra arguments to the script
-- arg1 arg2 arg3

# Delay between automatic restarts
--restart-delay <delay in ms>

# Prefix logs with time
--time

# Do not auto restart app
--no-autorestart

# Specify cron for forced restart
--cron <cron_pattern>

# Attach to application log
--no-daemon

三、管理流程

管理应用程序状态很简单,以下命令:

$ pm2 restart app_name
$ pm2 reload app_name
$ pm2 stop app_name
$ pm2 delete app_name

除了app_name您还可以使用:

  • all 在所有过程中采取行动
  • id 对特定的进程ID采取行动

四、列出托管的应用

列出由PM2管理的所有应用程序的状态:

$ pm2 [list|ls|status]

五、显示日志

实时显示日志:

$ pm2 logs

要挖掘较旧的日志:

$ pm2 logs --lines 200

六、基于终端的仪表板

这是一个直接适合您终端的实时仪表板:

$ pm2 monit
Invitation
QQ Group
1095632335

created:04/01/2020

Welcome to the Group

Use this card to join us and participate in a pleasant discussion together .

Welcome to JISHUSONGSHU Group,wish you a nice day .