官网文档:http://pm2.keymetrics.io/docs/usage/quick-start/
pm2是一个进程管理工具
可以用来管理node进程,并查看node进程的状态,并且支持性能监控,进程守护,负载均衡等功能
安装
npm install -g pm2
常用命令
启动进程/应用
pm2 start app.js
启动进程/应用 设置name
pm2 start app.js --name test
启动 - cluster mode(设置负载均衡)
pm2 start app.js -i 2
添加进程/应用
pm2 start bin/test
结束进程/应用
pm2 stop test|id/all(结束所有进程/应用)
重启进程/应用
pm2 restart test|id/all
删除进程/应用
pm2 delete test|id/all
刷新,平滑重启,失败后退化到restart
pm2 reload test|id
pm2 reload all
查看 - 某个进程
pm2 show/info test|id
查看进程/应用具体情况
pm2 describe test
列出所有进程/应用
pm2 list/l
查看进程/应用的资源消耗情况
pm2 monit
更新 - 保存当前进程
pm2 save
更新 - 下载
npm install pm2 -g
更新 - 执行
pm2 update
版本
pm2 -v
pm2 watch文档:http://pm2.keymetrics.io/docs/usage/watch-and-restart/
配置文件配置监视
{
"watch": ["server", "client"], //要监视的文件watch:可以是布尔值,数组,默认是:false
"ignore_watch" : ["node_modules", "client/img"], //不监视的文件
"watch_options": { //监视配置
"followSymlinks": false
}
}
配置文件控制应用
(在项目根目录下添加pm2.json)
{
"name": "manage", //项目名称
"script": "./bin/test", //要执行的脚本
"cwd":"./", //项目所在目录
"watch":[ //添加受监控的文件,以便自动更新
"models",
"routes"
]
}
(npm使用方法)
npm install -g sts
sts port
pm2 serve文档:http://pm2.keymetrics.io/docs/usage/expose/
(pm2使用方法)
pm2 serve path port
pm2 serve . 8001
或者
pm2 serve . 8001 --name test --watch
monit
pm2 monit文档:http://pm2.keymetrics.io/docs/usage/monitoring/
pm2 monit
线上web方式的监控
登录 https://app.keymetrics.io
pm2 link ak sk
pm2 module文档: http://pm2.keymetrics.io/docs/advanced/pm2-module-system/
pm2 cluster文档:http://pm2.keymetrics.io/docs/usage/cluster-mode/
默认启动的是fork模式,只对应一个进程
pm2 start app.js --name test
支持负载均衡(单机基于多cpu内核的负载均衡)
pm2 start app.js --name test -i num
日志文档:http://pm2.keymetrics.io/docs/usage/log-management/
查看所有日志
pm2 logs
查看某个进程/应用的日志
pm2 logs test
查看指定行数开始的日志
pm2 logs manage --lines 50
json格式查看日志
pm2 logs manage --json
输出配置
{
"script" : "app.js",
"error_file" : "err.log",
"out_file" : "out.log",
"merge_logs" : true,
"log_date_format" : "YYYY-MM-DD HH:mm Z"
}
合并日志
{
"log_file": "combined.outerr.log",
"out_file": "out.log",
"error_file": "err.log"
}
配置文件启动
pm2 start config.js
常用的配置文件项:
pm2 config文档:http://pm2.keymetrics.io/docs/usage/application-declaration/
module.exports = {
apps : [{
//启动后的name,相当于:pm2 start app.js --name test
name : 'test',
//启动的入口
script : './app.js',
// app.js的位置
cwd : 'e:/works/test',
// 负载均衡模式,使用2个核心,相当于:pm2 start app.js -i 2
instances : '2',
exec_mode : 'cluster',
// 监听文件修改,相当于:pm2 start app.js --watch
watch : ['server'],
ignore_watch : ['server/fore'],
// 最大内存占用,相当于:pm2 start app.js --max_memory_restart 20M
max_memory_restart : '100M',
// 日志相关
log_date_format : 'YYYY-MM-DD HH:mm Z',
error_file : 'd:/error.log',
out_file : 'd:/out.log'
}]
};
状态管理:http://pm2.keymetrics.io/docs/usage/signals-clean-restart/
环境管理:http://pm2.keymetrics.io/docs/usage/environment/
部署管理:http://pm2.keymetrics.io/docs/usage/deployment/
进程通信:
http://pm2.keymetrics.io/docs/usage/process-metrics/
http://pm2.keymetrics.io/docs/usage/process-actions/