# pm2

pm2 主要为 linux 中 nodejs 的进程进行服务,接下来就统计一下它的指令都有哪些

# 升级 PM2

$ npm install pm2@latest -g
$ pm2 update
1
2

# 安装

$ cnpm install pm2 -g
1
  • 软链接(不然找不到pm2)
find / -nmae pm2
ln -s /usr/local/bin/pm2 /usr/bin/pm2
1
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

# 停止

$ pm2 stop all # 停止所有应用程序
$ pm2 stop 0 # 停止进程 id 为 0 的应用程序
1
2

# 删除进程

$ pm2 delete all # 杀死并删除所有应用程序
$ pm2 delete 0 # 删除进程 id 为 0 的应用程序
1
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

# 进程监控

$ pm2 list # 列出 pm2 的所有流程
$ pm2 monit # 显示每个应用程序的内存和 cpu 使用情况
$ pm2 show [app-name] # 显示相关应用程序的所有信息
1
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

# 日志管理

$ pm2 logs # 显示所有应用程序的日志
$ pm2 logs [app-name] # 显示特定应用程序的日志
$ pm2 logs --json # 日志 json 格式化
$ pm2 flush
$ pm2 reloadLogs
1
2
3
4
5

# 进程状态管理

$ pm2 start app.js --name="api" # 启动应用程序,并将其命名为 “api”
$ pm2 start app.js --watch # 重新启动文件,更改应用程序
1
2