- PM2 是一个守护进程管理器,它将帮助您管理和保持您的应用程序在线。它可以保证服务不会中断一直在线,还有进程管理、监控功能。
- pm2官方文档
一、安装
npm install pm2@latest -g
//or
yarn global add pm2
二、基本使用
1、启动node程序
pm2 start index.js //启动node项目
2、启动程序并且命名进程
pm2 start index.js --name 进程名 //启动应用并设置进程名
3、显示所有进程状态
pm2 list //显示所有进程状态
4、添加进程监视
监听模式启动时,当文件发生变化 自动重启
pm2 start index.js --watch
//or
pm2 start index.js --name 程序名 --watch
5、删除进程
pm2 delete [appname] | id
//删除单个进程
pm2 delete index (appname) //进程名
pm2 delete 0 //进程id
//删除所有进程
pm2 delete all
6、停止进程
pm2 stop [appname] | id
pm2 stop index //停止当前进程名
pm2 stop 1 //停止当前进程 id
7、查看进程日志
pm2 logs [name] //指定进程名日志
pm2 logs [id] //指定进程id
pm2 logs //查看所有进程日志
pm2 flush //清空所有日志文件
8、重启进程
pm2 restart [appname] | id
pm2 restart all //重启所有进程
pm2 restart index //appname
pm2 restart 1 //id
9、查看某个进程具体情况
pm2 describe index
10、查看进程的资源消耗情况
pm2 monit( 监控各个应用进程cpu和memory使用情况)
11、显示应用程序详细信息
pm2 show [name] | id
pm2 show index //name
pm2 show 1 //id
12、开机自启
pm2 save //保存服务
pm2 startup //加入自启
13、集群模式启动
-i -instances: 启用多少给实例,可用于负载均衡。如果 -i 0 或者 max ,则根据当前机器核数确定实例数目
pm2 start index.js -i max //启用群集模式(自动负载均衡)
14、更新pm2
pm2 save //记得保存进程状态
npm install pm2 -g
pm2 updata
三、运行时遇见的问题
1、pm2启动node项目访问不了
通过pm2启动node项目,通过pm2 ls可以看到,node项目是可以正常启动,但是就是不能访问项目接口。通过node自己的启动方式,比如npm start和node app.js启动时,发现程序可以访问。
解决方法:(主要参考大佬的这个文章 pm2启动的node项目访问不了_codeXml的博客-优快云博客 )
在pageck.json 修改为: pm2 start 启动文件
"scripts": {
"dev": "nodemon ./src/index.js",
"start":"node ./src/index.js",
"pm2": "pm2 start ./src/index.js --watch --name lorawan",
"test": "echo \"Error: no test specified\" && exit 1"
}
查看node端口是否监听
netstat -ntlp