# pm2
pm2 主要为 linux 中 nodejs 的进程进行服务,接下来就统计一下它的指令都有哪些
# 升级 PM2
$ npm install pm2@latest -g
$ pm2 update
1
2
2
# 安装
$ cnpm install pm2 -g
1
- 软链接(不然找不到pm2)
find / -nmae pm2
ln -s /usr/local/bin/pm2 /usr/bin/pm2
1
2
2
# 启动
$ pm2 start app.js # 启动,守护进程和自动重启应用程序(node)
$ pm2 start app.py # 启动,守护程序和自动重启应用程序(python)
$ pm2 start npm --start # 启动,守护程序和自动重启节点应用程序
$ pm2 start bin/www --watch # 启动 koa 项目
1
2
3
4
2
3
4
# 停止
$ pm2 stop all # 停止所有应用程序
$ pm2 stop 0 # 停止进程 id 为 0 的应用程序
1
2
2
# 删除进程
$ pm2 delete all # 杀死并删除所有应用程序
$ pm2 delete 0 # 删除进程 id 为 0 的应用程序
1
2
2
# 重启所有应用程序
pm2 restart all
1
# 集群模式(仅限 Nodejs)
$ pm2 start app.js -i 4 # 在集群模式下启动 4 个应用程序 # 它将负载平衡每个应用程序的网络查询
$ pm2 reload all # 零秒停机重启
$ pm2 scale [app-name] 10 # 规模集群应用到 10 个进程
1
2
3
2
3
# 进程监控
$ pm2 list # 列出 pm2 的所有流程
$ pm2 monit # 显示每个应用程序的内存和 cpu 使用情况
$ pm2 show [app-name] # 显示相关应用程序的所有信息
1
2
3
2
3
[root@VM-20-11-centos prod]# pm2 list
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 15 │ abstract-egg │ fork │ 0 │ online │ 0% │ 36.0mb │
│ 19 │ abstract-express │ fork │ 15 │ errored │ 0% │ 0b │
│ 11 │ antdpro-express │ fork │ 0 │ online │ 0% │ 54.5mb │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 日志管理
$ pm2 logs # 显示所有应用程序的日志
$ pm2 logs [app-name] # 显示特定应用程序的日志
$ pm2 logs --json # 日志 json 格式化
$ pm2 flush
$ pm2 reloadLogs
1
2
3
4
5
2
3
4
5
# 进程状态管理
$ pm2 start app.js --name="api" # 启动应用程序,并将其命名为 “api”
$ pm2 start app.js --watch # 重新启动文件,更改应用程序
1
2
2