pm2
- 安装
npm install -g pm2@版本
- 部署文件启动
pm2 startOrRestart deploy.json
- 指启动一个
pm2 start deploy.json --only api-name
- 刷新日志
pm2 flush
部署文件示例
module.exports = {
apps :[{
name : "worker",
cwd: '../../'
script : "./worker.js",
"args": [
"id=t-server"
],
kill_timeout : 3000,
watch : false,
env: {
"NODE_ENV": "development",
},
env_production : {
"NODE_ENV": "production"
}
},{
name : "api-app",
script : "./api.js",
instances : 4,
merge_logs: true,
exec_mode : 'cluster',
log_date_format: 'YYYY-MM-DD HH:mm:ss',
error_file": '1.log',
out_file: '2.log',
autorestart: true,
max_memory_restart: '2G'
}],
deploy : {
production : {
user : 'node',
host : '212.83.163.1',
ref : 'origin/master',
repo : 'git@github.com:repo.git',
path : '/var/www/production',
'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production'
},
dev : {
user : 'node',
host : '212.83.163.1',
ref : 'origin/master',
repo : 'git@github.com:repo.git',
path : '/var/www/development',
'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env dev',
env : {
NODE_ENV: 'dev'
}
}
}
};
日志分割
pm2 install pm2-logrotate
注意 如果 npm 的版本是 v2.7.4 ,会安装失败(Github 上的 issue),需更新 npm。
配置
max_size(默认 10MB):当日志文件超过该值指定的大小时,就会切割日志文件。还可以设置为其他的单位,例如:1G、1M、1K。
interval(默认 1)
interval_unit(默认 ‘DD’):interval 和 interval_unit 是一起配合使用的,例如 interval=3、interval_unit=’DD’,表示日志文件每三天切割一次。
retain(默认 ‘all’):保留的日志文件数
设置
pm2 set pm2-logrotate:<param> <value>
配置项的值都是通过这样的形式设置,例如:
pm2 set pm2-logrotate:max_size 1K
设置 max_size 为 1K
pm2 get
删除日志
pm2 flush