PM2

官网:https://pm2.keymetrics.io/docs/usage/quick-start/open in new window

安装

npm install pm2 -g
1

配置环境变量

问题:pm2 不是内部或外部命令也不是可运行的程序

先试试重启电脑。

  1. 查看 npm 全局包安装位置
npm root -g
1
  1. 打开环境变量,在 Path 中添加环境变量,只需要配置到 node 下的 node_global 即可

  2. 重启电脑

介绍

  • nodejs 进程管理工具
  • 守护进程:服务挂掉之后自动重启
  • 多进程:更好的利用 CPU 和内存

配置和使用

  • 启动服务
  • 常用命令
  • 配置

启动服务

pm2 start [name]
1

启动后的字段说明:

  • name: 系统名称
  • pid: 操作系统分配的 ID
  • restart: 重启次数
  • status: 状态;online是在线
  • mem: 占用的内存
  • watching: 是否监听代码变化自动重启

常用命令

  • 查看 pm2 list
  • 运行 pm2 start [name]
  • 重启 pm2 restart [name]
  • 停止 pm2 stop [name]
  • 删除 pm2 delete [name]
  • 信息 pm2 info [name]
  • 日志 pm2 log [name]
  • 监控 pm2 monit [name]

日志

使用pm2启动之后,先查看log信息,能看到是否有问题。再使用netstat -ntlp查看端口号是否启动成功。

log 文件在/.pm2/logs下面。

日志拆分

  • pm2-logrotate

配置

  1. 在项目中新建pm2.conf.json文件
  2. 配置文件内容
{
  "apps": {
    "name": "weibo", //  系统名称
    "script": "bin/www",
    "watch": true, // 文件变化自动重启
    "ignore_watch": [
      // 过滤这些的变化
      "node_modules",
      "logs",
      "uploadFiles"
    ],
    "instances": 4, // 进程数量,CPU是几核就写几
    "error_file": "./logs/err.log",
    "out_file": "./logs/out.log",
    "log_date_format": "YYYY-MM-DD HH:mm:ss"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  1. 通过配置文件启动项目

多进程模型

  • 操作系统会限制一个进程的最大可用内存,设置多个进程,可以更有效的发挥 CPU 的功效。
  • 进程之间无法通行,因此redismysql要用统一的服务
Last Updated: 2023/3/20 13:48:48
Contributors: 黎聪, licong23@xdf.cn, licong96