⑴ PM2介紹和使用
PM2 是一個帶有負載均衡功能的 Node 應用的進程管理器。我們都知道nodejs是單進程執行的,當程序出現錯誤死掉之後需要能夠自動,這時候就需要PM2了。當然進程管理工具有很多,例如forever等等;
1)啟動多子進程,充分使用CPU
2)子進程之間負載均衡
3)0秒重啟
4)界面友好
5)提供進程交互(例如:監控)介面
npm install pm2 -g
pm2 start app.js -i 4 -n customer //-i 4啟動4個進程 -n customer指定進程名稱
pm2 list //查看進程狀態
pm2 info customer //查看單個進程的詳細啟動信息
pm2 logs customer //查看實時日誌
pm2 restart all || customer //直接重啟進程
pm2 reload customer //0秒停機重啟進程
pm2 gracefulReload customer //等待網路連接處理完之後重啟進程;避免請求處理中斷導致可能的業務錯誤
pm2 delete all|customer //刪除所有的或者指定的進程
pm2 stop all ||customer //停止進程,但是進程仍然存在
pm2 monit //監控進程信息
pm2 update //升級pm2之後需要升級老版本啟動的進程
pm2 start start.json //通過配置文件啟動
start.json示例
⑵ PM2 常用命令
$ pm2 start app.js # 啟動app.js應用程序
$ pm2 start app.js -i 4 # cluster mode 模式啟動4個app.js的應用實例
# 4個應用程序會自動進行負載均衡
$ pm2 start app.js --name="api" # 啟動應用程序並命名為 "api"
$ pm2 start app.js --watch # 當文件變化時自動重啟應用
$ pm2 start script.sh # 啟動 bash 腳本
$ pm2 list # 列表 PM2 啟動的所有的應用程序
$ pm2 monit # 顯示每個應用程序的CPU和內存佔用情況
$ pm2 show [app-name] # 顯示應用程序的所有信息
$ pm2 logs # 顯示所有應用程序的日誌
$ pm2 logs [app-name] # 顯示指定應用程序的日誌
pm2 flush
$ pm2 stop all # 停止所有的應用程序
$ pm2 stop 0 # 停止 id為 0的指定應用程序
$ pm2 restart all # 重啟所有應用
$ pm2 reload all # 重啟 cluster mode下的所有應用
$ pm2 gracefulReload all # Graceful reload all apps in 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 # 重新載入保存的應用列表
$ pm2 update # Save processes, kill PM2 and restore processes
$ pm2 generate # Generate a sample json configuration file
pm2 start app.js --node-args="--max-old-space-size=1024"
⑶ PM2 常用命令
pm2常用命令記錄
$ pm2 start app.js # 啟動app.js應用程序
$ pm2 start app.js -i 4 # cluster mode 模式啟動4個app.js的應用實例
# 4個應用程序會自動進行負載均衡
$ pm2 start app.js --name="api" # 啟動應用程序並命名為 "api"
$ pm2 start app.js --watch # 當文件變化時自動重啟應用
$ pm2 start script.sh # 啟動 bash 腳本
$ pm2 list # 列表 PM2 啟動的所有的應用程序
$ pm2 monit # 顯示每個應用程序的CPU和內存佔用情況
$ pm2 show [app-name] # 顯示應用程序的所有信息
$ pm2 logs # 顯示所有應用程序的日誌
$ pm2 logs [app-name] # 顯示指定應用程序的日誌
$ pm2 flush # 清空所有日誌文件
$ pm2 stop all # 停止所有的應用程序
$ pm2 stop 0 # 停止 id為 0的指定應用程序
$ pm2 restart all # 重啟所有應用
$ pm2 reload all # 重啟 cluster mode下的所有應用
$ pm2 gracefulReload all # Graceful reload all apps in 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 # 重新載入保存的應用列表
$ pm2 update # Save processes, kill PM2 and restore processes
$ pm2 generate # Generate a sample json configuration file
pm2文檔地址:http://pm2.keymetrics.io/docs/usage/quick-start/