全局安装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 上的解决方案来进行日志的管理和分割。