PM2 是一个守护进程管理器,它将帮助您管理和保持您的应用程序在线。
主要特点:
- 内建负载均衡(使用 Node cluster 集群模块)exec_mode
- 后台运行
- 0 秒停机重载
- 具有 Ubuntu 和 CentOS 的启动脚本
- 停止不稳定的进程(避免无限循环)
- 控制台检测
- 提供 HTTP API
- 远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互 )
安装:
- 通过全局安装 npm install pm2 -g
- 安装完成之后,在项目的文件中执行 pm2 init 生成配置文件【也可以手动创建配置文件】注:创建配置文件必须以 .config.js 结尾
- 配置完成之后,通过 pm2 start xxx.config.js(配置文件)启动项目
配置项解析:
注意项:
- interpreter:指定应用程序解析器。默认node解析器
- exec_mode:指定模式,有fork_mode和cluster_mode两种模式。默认fork_mode模式
- cluster_mode模式对应node解析器,如果要改变解析器的话,必须用fork_mode模式。
常用命令:
启动命令【可以添加参数,配置文件中的配置项都可以当作参入传入。为了方便所以放在配置文件里面,最后启动配置文件】
pm2 start xxx.config.js
带参数启动【启动文件,并利用babel-node解析器】如下命令
pm2 start xxx.config.js --interpreter babel-node
查看启动进程列表【exec_mode:'cluster_mode' 这种模式下,并且instances 配置大于1】如 exec_mode:'cluster_mode,instances:2 执行一下命令可以看到启动了2个进程
pm2 list
查看详细状态信息【传入应用程序的name或ID】
pm2 show [name/id]
删除全部进程
pm2 delete all
删除单个进程【传入应用程序的name或ID】
pm2 delete [name/id]
停止全部进程
pm2 stop all
停止单个进程【传入应用程序的name或ID】
pm2 stop [name/id]
重启
pm2 restart xxx.config.js
显示应用程序的CUP和内存占用情况
pm2 monit
执行pm2 monit命令之后,显示如下图
Process List:表示进程列表 | demo Logs:log日志 | Custom Metrics:自定义指标 | Metadata:元数据【基本信息】
查看日志
pm2 logs