Pm2安装与使用

简介

pm2是开源的基于Nodejs的进程管理器,包括守护进程,监控,日志的一整套完整的功能,基本是Nodejs应用程序不二的守护进程选择,事实上它并不仅仅可以启动Nodejs的程序,只要是一般的脚本的程序它同样可以胜任。

安装命令如下:

1
npm install pm2 -g

常用命令

启动任务

1
mac@Sutune blog % pm2 start /Users/mac/Desktop/mgtv/code/start_hexo.sh --name "hexo"

查看所有任务

1
2
3
4
5
6
mac@Sutune blog %pm2 list
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ hexo │ fork │ 0 │ online │ 0% │ 1.1mb │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘

查看任务日志

使用命令 pm2 logs [id] |[name] 可以查看任务运行日志。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mac@Sutune blog %  pm2 logs hexo 
[TAILING] Tailing last 15 lines for [hexo] process (change the value with --lines option)
/Users/mac/.pm2/logs/hexo-error.log last 15 lines:
/Users/mac/.pm2/logs/hexo-out.log last 15 lines:
0|hexo | INFO Validating config
0|hexo | INFO ==================================
0|hexo | ███╗ ██╗███████╗██╗ ██╗████████╗
0|hexo | ████╗ ██║██╔════╝╚██╗██╔╝╚══██╔══╝
0|hexo | ██╔██╗ ██║█████╗ ╚███╔╝ ██║
0|hexo | ██║╚██╗██║██╔══╝ ██╔██╗ ██║
0|hexo | ██║ ╚████║███████╗██╔╝ ██╗ ██║
0|hexo | ╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝ ╚═╝
0|hexo | ========================================
0|hexo | NexT version 8.10.1
0|hexo | Documentation: https://theme-next.js.org
0|hexo | ========================================
0|hexo | INFO Start processing
0|hexo | INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.

停止任务

1
pm2 stop [id|name]

更多命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pm2 start app.js --watch      # 当文件变化时自动重启应用
pm2 start script.sh # 启动 bash 脚本
pm2 list # 列表 PM2 启动的所有的应用程序
pm2 monit # 显示每个应用程序的CPU和内存占用情况
pm2 show [app-name] # 显示应用程序的所有信息
pm2 logs # 显示所有应用程序的日志
pm2 stop all # 停止所有的应用程序
pm2 stop 0 # 停止 id为 0的指定应用程序
pm2 restart all # 重启所有应用
pm2 reload all # 重启 cluster mode下的所有应用
pm2 delete all # 关闭并删除所有应用
pm2 delete 0 # 删除指定应用 id 0
pm2 scale api 10 # 把名字叫api的应用扩展到10个实例pm2 reset [app-name] # 重置重启数量
pm2 startup # 创建开机自启动命令
pm2 save # 保存当前应用列表
pm2 resurrect # 重新加载保存的应用列表

参考资料