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