灏天阁

Node/Koa2[76]:PM2配置和使用

· Yin灏

PM2 介绍

  1. PM2 node.js 进程管理工具(npm install pm2 -g)

  2. 守护进程:服务挂掉之后自动重启

  3. 多进程:更好的利用 CPU 和内存

PM2 使用

  1. 启动服务

  2. 常用命令

  3. 进程守护

代码演示

  • 安装
npm install pm2 -g
  • 配置 package.json 命令
"scripts": {
  //...
  "prd": "cross-env NODE_ENV=production pm2 start bin/www"
}
  • 运行命令
npm run prd
  • 基本命令
pm2 list #查看列表
pm2 restart [name,[id]] #重启
pm stop [name,[id]] #停止
pm2 delete [name,[id]] #删除
pm2 info [name,[id]] #查看具体进程信息
pm2 log #查看日志
pm2 monit [name,[id]] #监控

PM2 配置

  • 新建文件:pm2.conf.json
{
  "apps": {
    "name": "weibo",
    "script": "bin/www",
    "watch": true,
    "ignore_watch": ["node_modules", "logs", "uploadFiles"],
    "instances": 4, // 多进程
    "error_file": "./logs/err.log",
    "out_file": "./logs/out.log",
    "log_date_format": "YYYY-MM-DD HH:mm:ss"
  }
}
  • 更改启动命令
"scripts": {
  //...
  "prd": "cross-env NODE_ENV=production pm2 start pm2.conf.json"
}

多进程模型

  1. 更好的利用内存和 CPU

  2. 进程之间无法通讯,因此 redis mysql 要用统一的服务

- Book Lists -