天天看点

pm2使用总结

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份,也就是备份最近七小时的日志

           

继续阅读