pm2是一个进程管理工具,维护一个进程列表,用它来管理node进程,负责所有运行的进程并查看node进程的状态,也支持性能监控,负载均衡等功能,在前端和nodejs的世界中用的很多。
pm2与同类工具对比:
特性:
①后台运行:普通的启动方式 node index.js,关闭终端就结束进程,但pm2关闭终端后仍可在后端运行
②自动重启:可以监听某些文件改动,自动重启(岂不是可以利用这个来做自动部署?)
③停止不稳定的进程:限制不稳定的重启次数,到达上限就停止进程
④0秒停机重启;集群模式下(什么是集群模式?),可以达到重启时不停止服务(怎么做到的)
⑤简单日志管理:pm2可以收集日志,并有插件配合管理
⑥自动负载均衡:cluster(集群)模式下,会自动使用轮询 的方式达到负载均衡,从而减轻服务器的压力
⑦提供实时的接口:pm2插件提供实时的接口,返回服务器与进程的信息
⑧集成管理:有多个进程,不同环境可以统一配置,方便管理
基础用法:
①启动进程:pm2 start app.js
②停止/删除/重启进程:pm2 stop/delete/restart app_name|app_id|all 集群模式下,restart中断服务,而reload不会
③查看所有的进程:pm2 list/ls/status
安装
安装命令:npm install -g pm2;
查看安装路径:whereis pm2;
查看安装的版本:pm2 -v;
更新pm2
更新PM2非常快(少于几秒)并且无缝。
首先确保您正确保存了所有进程:sudo pm2 save
然后从NPM安装最新的PM2版本: sudo npm install pm2 -g
最后更新内存中的PM2进程:sudo pm2 update
使用pm2启动项目
注意:使用pm2启动项目时,默认是通过自己项目中的package.json中的配置进行启动的,需要查看项目中的package.json中start的配置。
查看scripts下的start的配置值,根据这个启动路径进行启动。记住这个启动路径
在项目路径下启动项目: pm2 start ./bin/www //启动当前项目
1 #启动进程(需要进入该项目所在目录下) 2 pm2 start 进程名 3 4 #常用入参 5 # 指定应用程序名称 6 --name <app_name> 7 8 # 当文件更改时,重启应用程序 9 --watch 10 11 # 为应用程序重新加载设置内存阈值 12 --max-memory-restart <200MB> 13 14 # 指定日志文件 15 --log <log_path> 16 17 # 向脚本传递额外的参数 18 -- arg1 arg2 arg3 19 20 # 自动重启之间的延迟 21 --restart-delay <delay in ms> 22 23 # 在日志前面加上时间前缀 24 --time 25 26 # 不要自动重启应用程序 27 --no-autorestart 28 29 # 为强制重启指定cron 30 --cron <cron_pattern> 31 32 # 附加到应用程序日志 33 --no-daemon 34 35 36 #启动成功后可进行访问,若不能访问检查一下端口的下行规则是否开放 37 38 #查看进程 39 pm2 list 40 #停止、删除进程 41 pm2 stop/delete 进程名 42 #查看日志 43 pm2 logs
参考:
https://blog.csdn.net/renhe96421/article/details/125384495