pm2的使用
pm2 介绍
pm 2 是一个带有负载均衡功能的 Node 应用的多进程管理器,虽然是为 node 开发的,但也能管理其他程序进程,比如 Java,go 项目。
pm2 主要特性:
- 后台运行:相较于普通的启动方式(如 node index.js),PM2可以在关闭终端后依然保持进程运行。
- 自动重启:PM2可以监听某些文件的改动,并在需要时自动重启对应的应用。
- 停止不稳定的进程:当一个进程的稳定性达到一定程度并且重启次数超过上限时,PM2会自动停止该进程。
- 0秒停机重启:在集群模式下,可以实现在不停止服务的情况下进行重启。
- 日志管理:PM2可以收集应用程序的日志,并有插件可以帮助进行日志管理。
- 负载均衡:在cluster模式下,PM2可以自动使用轮询的方式进行负载均衡,从而减轻服务器的压力。
- 提供实时接口:PM 2 的插件可以提供实时的接口,返回服务器与进程的信息
pm2 常用命令
- pm2 启动进程
- pm2 start index.js node 服务器单进程启动如果容器是 node,可以不写
- pm2 start java --name jtcp -- ~/jtcp.java java tcp 服务器单进程启动。双减号后无空格参数是 pm2参数,有空格的是脚本参数
- pm2 start server.min.js -i 4 多进程集群启动,启动4个 server 后台进程,4也可以赋值'max',max 等于 Cpu 的核心数
- pm2 start index.js --name server 1 使用名字启动进程
- pm2 start 18 使用 pm2 list 里面的进程 id 启动进程
- pm2 start server 1 使用 pm2 list 里面的进程 name 启动进程
- pm2 start ~/.pm 2.json 使用 pm2 配置文件启动
- pm2 停止进程 停止并退出进程,不清除 pm2 进程信息缓存
- pm2 stop all 停止所有的进程
- pm2 stop 18 停止指定进程 id 的进程
- pm2 stop server 1 使用指定进程 name 停止进程
- pm2 删除进程 停止并退出进程,清除 pm2 进程信息缓存
- pm2 delete all 删除所有进程
- pm2 delete 18 删除指定进程 id 的进程
- pm2 delete server 1 删除指定进程 name 停止进程
- pm2 重启进程 相当于一个进程执行 stop,在执行 start 两个操作的集合
- pm2 restart all 重启所有进程
- pm2 restart 18 重启指定进程 id 的进程
- pm2 restart server 1 重启指定进程 name 停止进程
- pm2 重载进程 相当于一个进程执行 delete,再执行 start 两个操作的集合,此过程会刷新启动配置文件
- pm2 reload all 重载所有进程
- pm2 reload 18 重载指定进程 id 的进程
- pm2 relaod server1 重载指定进程 name 停止进程
- pm2 监控进程
- pm2 list 显示所有进程状态
- pm2 monit 监视所有进程
- pm2 monitor 实时页面监控
- pm2 describe 18 查询指定进程 id 的进程详细信息
- pm2 describe server1 查询指定进程 name 的进程详细信息
- pm2 日志管理
- pm2 start index.js -o "/var/logs/out.log" -e "/var/logs/err.log" 启动进程时指定日志输出目录
- pm2 log 显示所有进程日志
- pm2 log server1 显示指定进程 name 的日志
- pm2 log --err 查看错误日志
- pm2 log --out 查看常规运行日志
- pm 2 log | grep "xxx" 筛选想查看的日志
其他配置
注意事项:
- restart 命令会杀死并重启进程,所以短时间内服务会不可访问,生产环境推荐使用 reload