Skip to content

PM2

PM2

NODE.JS 的高级生产流程管理器。
PM2 是一个守护进程管理器,它将帮助您管理和保持您的应用程序 24/7 在线。

PM2 能解决什么问题?

我们的线上 Node 项目,可以通过 node app 来启动,但是一旦报错就可能直接导致整个服务崩溃。

所以我们需要有一个工具来管理 Node 项目, 让它能实现如性能监控、自动重启、负载均衡等功能。

PM2 包含一个自动负载均衡器。

js
// 安装
$ npm install pm2 -g

PM2 的常见命令

js
// 运行某个项目
$ pm2 start app.js

// 运行某个KOA项目(假设KOA项目的启动命令为:npm run start)
$ pm2 start npm -- start

// 监控所有启动的进程
$ pm2 monit

// ======= 微服务
// 列出所有进程:
$ pm2 list         // 显示所有进程
// 对进程进行操作
$ pm2 stop [**]    // 停止进程
$ pm2 restart [**] // 重启进程
$ pm2 delete [**]  // 删除进程
$ pm2 reload all   // 重载所有进程
// 日志操作
$ pm2 logs [**]
$ pm2 flush       // 清空所有日志
// [**]里面可以传入 id值 或 all
// all对所有进程采取行动
// id作用于特定的进程 ID

// ====== 如何更新 PM2
// 1. 安装最新的 pm2 版本:
$ npm install pm2@latest -g
// 2. 然后更新内存中的 PM2 :
$ pm2 update

PM2 启动 verdaccio 踩坑

pm2 启动文件的时候是在当前命令行去启动的,当前 cmd 打开的是什么目录就去什么目录启动,如果在 c 盘打开命令行, 启动 verdaccio 总是失败,因为找 verdaccio 的目录错误。

输入命令

js
//启动verdaccio,首次启动的时候,总是会出现Invalid or unexpected toke,这是因为查找verdaccio的目录错误,因为命令默认查找是去系统查找
pm2 statrt verdaccio

解决方式

1.找到verdaccio全局安装包 2.找到 pm2 需要执行的文件路径 3.修改 pm2 命令

js
//第一次启动的时候,公司服务器上私有环境verdaccio启动文件所在目录
pm2 start D:\Environment\front-web\nvm\v21.4.0\node_modules\verdaccio\bin\verdaccio

//第一次启动,我本地电脑verdaccio的程序启动目录
pm2 start C:\Users\JKL\AppData\Roaming\npm\node_modules\verdaccio\bin\verdaccio

//等到目录添加到pm2列表之后,就可以根据name去启动
pm2 start verdaccio

参考地址:
PM2 官网
PM2 npm 地址
PM2 启动 verdaccio 踩坑