1、pm2優點
- 程序守護,系統崩潰自動重新開機
- 啟動多程序,充分利用cpu和記憶體
- 自帶日志記錄功能
2、下載下傳安裝
npm install pm2 -g #安裝
pm2 --version #版本
pm2 start index.js #啟動
pm2 list #檢視程序清單
pm2 restart/stop/delete/info <appName>/<id> #重新開機/停止/删除/檢視基本資訊
pm2 log/monit <appName>/<id> #檢視日志/監控CPU和記憶體資訊
pm2 start app.js --watch # 當檔案變化時自動重新開機應用
3、啟動
"scripts": {
"dev": "cross-env NODE_ENV=development nodemon ./index.js",
"prod": "cross-env NODE_ENV=production pm2 start ./index.js",
"prod2": "cross-env NODE_ENV=production pm2 start ./pm2.conf.json"
},
4、程序守護
- node app.js 和 nodemon app.js ,程序崩潰則不能通路
- pm2遇到程序崩潰,會自動重新開機
5、常用配置
- 建立pm2的配置檔案(包括程序數量,日志檔案目錄等)
- 修改pm2啟動指令,重新開機
配置檔案
{
"apps": {
"name": "pm2-test-server",//項目名字
"script": "index.js",//入口檔案
"watch": true, //修改代碼自動重新開機
"ignore_watch": [
"node_modules",
"logs",
".idea"
],//哪些檔案變動了不需要重新開機
"instances": "4",//設定多程序
"error_file": "logs/err.log",
"out_file": "logs/out.log",//配置日志存儲目錄
"log_date_format": "YYYY-MM_DD HH:mm:ss",//日志輸出的時間格式
}
}
通過配置檔案啟動
pm2 start ./pm2.conf.json
6、日志拆分
pm2 install pm2-logrotate #安裝
pm2 set pm2-logrotate:compress true #壓縮
pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss #日志打包的檔案名
pm2 set pm2-logrotate:max_size 10M #單個日志檔案的大小
pm2 set pm2-logrotate:rotateModule true #把pm2本身的日志也進行分割
pm2 set pm2-logrotate:workerInterval 30 #設定啟動幾個工作程序監控日志尺寸,最小為1
pm2 set pm2-logrotate:rotateInterval '* * */1 * *' #每小時備份
pm2 set pm2-logrotate:retain 7 #最多備份7份,也就是備份最近七小時的日志