# PM2 相关
- 进程守护,系统崩溃自动重启
- 启动多进程,充分利用 CPU 和内存
- 自带日志记录功能
# 下载安装
使用命令 npm install pm2 -g;可以使用 pm2 --version 查看版本;
# 启动
通过 pm2 启动服务: pm2 start 后面可以跟启动的文件名,也可以跟启动的配置文件;
// 在 package.json 中进行配置下面命令
// app.js 为项目入口文件;如果是 koa 或者 express 项目,是 bin/www
"scripts": {
"start": "node bin/www",
"prd": "cross-env NODE_ENV=production pm2 start app.js",
},
启动之后,控制台会打印启动的结果:
# 查看启动列表
可以使用命令 pm2 list 查看启动的应用:
# 重启服务
可以使用 pm2 restart id/name;比如上面我们启动的服务,有 id 和 name 标识一个服务:
# 停止或删除服务
使用命令 pm2 stop id/name, pm2 delete id/name;
# 查看服务信息
使用命令 pm2 info id/name
# 查看服务日志
使用命令 pm2 log id/name
# 监听服务更详细的信息
使用命令 pm2 monit id/name
# 进行守护
如果我们使用 node app.js 或者 nodemon app.js,如果服务出现问题,服务崩溃就不能访问了,pm2 遇到进程崩溃,会自动重启服务
# 配置
- 新建 pm2 配置文件(包括进程数量,日志文件目录等)
- 修改 pm2 启动命令,重启
{
"apps": {
"name": "blog-server",
"script": "bin/www",
"watch": true, // 监听文件变化自动重启
"ignore_watch": [
"node_modules",
"logs"
],
// 开启 4 个进程,pm2 会实现负载均衡
"instances": 4,
// 输出错误日志
"error_file": "logs/err.log",
// 自定义日志
"out_file": "logs/out.log",
// 日志时间戳
"log_date_format": "YYYY-MM-DD HH:mm:ss"
}
}
日志内容:
2020-02-19 16:52:41: GET /api/user/login-test - 1ms
2020-02-19 16:52:41: --> GET /api/user/login-test 404 3ms -
然后修改项目配置:
"scripts": {
"start": "node bin/www",
"prd": "cross-env NODE_ENV=production pm2 start pm2.conf.json",
},
阅读量:
评 论:
← koa相关