PM2
官网:https://pm2.keymetrics.io/docs/usage/quick-start/open in new window
安装
npm install pm2 -g
1
配置环境变量
问题:pm2 不是内部或外部命令也不是可运行的程序
先试试重启电脑。
- 查看 npm 全局包安装位置
npm root -g
1
打开环境变量,在 Path 中添加环境变量,只需要配置到 node 下的 node_global 即可
重启电脑
介绍
- nodejs 进程管理工具
- 守护进程:服务挂掉之后自动重启
- 多进程:更好的利用 CPU 和内存
配置和使用
- 启动服务
- 常用命令
- 配置
启动服务
pm2 start [name]
1
启动后的字段说明:
name
: 系统名称pid
: 操作系统分配的 IDrestart
: 重启次数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
配置
- 在项目中新建
pm2.conf.json
文件 - 配置文件内容
{
"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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 通过配置文件启动项目
多进程模型
- 操作系统会限制一个进程的最大可用内存,设置多个进程,可以更有效的发挥 CPU 的功效。
- 进程之间无法通行,因此
redis
和mysql
要用统一的服务