pm2 是一個帶有負載均衡功能的Node應用的進程管理器。
一、概述
PM2是一個帶有負載均衡功能的Node.js應用的進程管理器。它允許你永遠保持應用的存活,重新加載無需停機。
二、安裝PM2
$ npm install pm2 -g
注:需要安裝Node.js、npm
三、啟動Node.js應用
$ pm2 start app.js
四、更新PM2
$ pm2 update
五、主要特點
1、命令概述
# 常用
$ npm install pm2 -g # 安裝 PM2
$ pm2 start app.js # 啟動 守護進程 并且 重啟應用 (Node)
$ pm2 start app.py # 啟動 守護進程 并且 重啟應用 (Python)
$ pm2 start npm -- start # 啟動 守護進程 并且 重啟應用
# 集群模式 (僅限Node.js)
$ pm2 start app.js -i 4 # 在集群模式下啟動4個應用實例
# 它將加載平衡網絡查詢到每個應用程序
$ pm2 reload all # 0 秒停機重新加載
$ pm2 scale [app-name] 10 # 擴展 10個進程到集群中
# 進程監控
$ pm2 list # 使用PM2列出所有的過程
$ pm2 monit # 顯示應用程序的內存和CPU的使用情況
$ pm2 show [app-name] # 顯示[app-name]應用程序的信息
# 日志管理
$ pm2 logs # 顯示所有應用程序的日志
$ pm2 logs [app-name] # 顯示特定應用程序的日志
$ pm2 logs --json # JSON格式的日志
$ pm2 flush
$ pm2 reloadLogs
# 過程狀態管理
$ pm2 start app.js --name="api" # 啟動應用程序并命名它為“api”
$ pm2 start app.js -- -a 34 # 啟動應用程序和傳遞選項“-a 34”作為參數
$ pm2 start app.js --watch # 監控文件變化并重啟
$ pm2 start script.sh # 啟動bash腳本
$ pm2 start app.json # 通過配置文件啟動應用
$ pm2 reset [app-name] # 重置所有計數器
$ pm2 stop all # 停止所有的應用程序
$ pm2 stop 0 # 停止進程id為0的應用
$ pm2 restart all # 重新啟動所有的應用程序
$ pm2 gracefulReload all # 在集群模式下優雅重載所有應用程序
$ pm2 delete all # 殺死和刪除所有應用程序
$ pm2 delete 0 # 殺死進程id為0的應用
# 啟動/啟動管理
$ pm2 startup # 檢測系統初始化,生成和啟動配置PM2 boot
$ pm2 save # 保存當前進程列表
$ pm2 resurrect # 恢復以前保存進程
$ pm2 unstartup # 禁用和刪除啟動系統
$ pm2 update # 保存進程, 殺死 PM2 并 恢復進程
$ pm2 generate # 生成JSON配置文件示例
# 部署
$ pm2 deploy app.json prod setup # 設置 "prod" 遠程服務器
$ pm2 deploy app.json prod # 更新 "prod" 遠程服務器
$ pm2 deploy app.json prod revert 2 # 回復2 "prod" 遠程服務器
# 系統模塊
$ pm2 module:generate [name] # 以[name]生成示例模塊
$ pm2 install pm2-logrotate # 安裝模塊(這里有一個日志輪換系統)
$ pm2 uninstall pm2-logrotate # 卸載模塊
$ pm2 publish # 增加版本號,git push和NPM發布
2、進程管理器
pm2 list
image.png
pm2 monit
https://static.oschina.net/uploads/space/2017/0222/163300_aHGM_1251467.png
想了解更多的知識,可以查閱官方網站 http://pm2.keymetrics.io/