pm2 start npm --name 别名 -- run start:prod
npm run start 变成pm2的模式 就是 pm2 start npm -- run start
其中 --watch 是监视代码改动就自动重启
--name 是指定pm2项目名
1 2 | pm2 start npm --name nest -- run start:prod pm2 start npm --watch --name esHead -- run start |
以下是其它详情介绍
为什么需要使用PM2
因为node.js 是单进程,进程被杀死后整个服务就跪了,所以需要进程管理工具,但是pm2 远远不止这些。
介绍
PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。 当你要把你的独立代码利用全部的服务器上的所有 CPU,并保证进程永远都活着,0 秒的重载, PM2 是完美的。
特性
- 内建负载均衡(使用Node cluster 集群模块)
- 后台运行
- 0秒停机重载(维护升级的时候不需要停机).
- 具有Ubuntu和CentOS 的启动脚本
- 停止不稳定的进程(避免无限循环)
- 控制台检测
- 提供 HTTP API
- 远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )
安装
首先确保有node.js 的环境
1 | npm install -g pm2 |
命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | npm install pm2 -g # 命令行安装 pm2 pm2 start app.js -i 4 #后台运行pm2,启动4个app.js # 也可以把'max' 参数传递给 start # 正确的进程数目依赖于Cpu的核心数目 pm2 start app.js --name my-api # 命名进程 pm2 list # 显示所有进程状态 pm2 monit # 监视所有进程 pm2 logs # 显示所有进程日志 pm2 stop all # 停止所有进程 pm2 restart all # 重启所有进程 pm2 reload all # 0秒停机重载进程 (用于 NETWORKED 进程) pm2 stop 0 # 停止指定的进程 pm2 restart 0 # 重启指定的进程 pm2 startup # 产生 init 脚本 保持进程活着 pm2 web # 运行健壮的 computer API endpoint (http://localhost:9615) pm2 delete 0 # 杀死指定的进程 pm2 delete all # 杀死全部进程 |