nodejs服务使用pm2启动多个进程和进程守护,以及使用pm2-logrotate-ext分割日志

全局安装pm2

npm install pm2 -g

 pm2 json 配置文件,

script 指向的是入口文件,

watch 是否监听文件改变重启

instances  启动的进程数

日志的配置, 访问日志和异常日志,日志的时间前缀格式,是否合并日志,如果开启两个进程,不合并日志就会生成两份访问日志和异常日志,分为两个进程的日志。

{
  "apps": {
    "name": "app",
    "script": "bin/www",
    "watch": false,
    "instances": 2,
    "error_file": "logs/err.log",
    "out_file": "logs/out.log",
    "log_date_format": "YYYY-MM-DD HH:mm:ss",
    "merge_logs": true
  }
}

package.json 里加一条启动项  prd, 启动指向上面的配置文件

 "scripts": {
    "start": "node bin/www",
    "dev": "cross-env NODE_ENV=dev ./node_modules/.bin/nodemon bin/www",
    "prd": "cross-env NODE_ENV=production pm2 start pm2.conf.json",
    "test": "echo \"Error: no test specified\" && exit 1"
  }

PM2 一些常用命令。 XXX代表配置的进程名字或ID

pm2 list    // 查看所有当前进程

pm2 stop XXX | all  // 停止进程

pm2 restart XXX | all  // 重启进程

pm2 delete XXX | all  // 删除进程  

 

关于日志,pm2的日志分割,设置的文件大小没满,按天分割有问题,使用 github 上的解决方案来进行日志的管理和分割。

pm2-logrotate-ext 

你可能感兴趣的:(node)