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份,也就是備份最近七小時的日誌