PM2

1,218 阅读2分钟

PM2是什么

PM2(Process Manager 2)是具有内置负载均衡器的Node.js应用程序的生产运行时和进程管理器。 它允许您永久保持应用程序活跃,无需停机即可重新加载它们,并促进常见的Devops任务。

特性

  1. 日志管理:应用程序日志保存在服务器的硬盘中~/.pm2/logs/;
  2. 负载均衡:PM2可以通过创建共享同一服务器端口的多个子进程来扩展您的应用程序,这样做还允许您以零秒停机时间重新启动应用程序;
  3. 终端监控:可以在终端中监控您的应用程序并检查应用程序运行状况(CPU使用率,使用的内存,请求/分钟等);
  4. SSH部署:自动部署,避免逐个在所有服务器中进行ssh;
  5. 静态服务:支持静态服务器功能;
  6. 多平台支持:适用于Linux(稳定)和macOS(稳定)和Windows(稳定)。

安装

npm install pm2 -g

应用管理

  1. 启动
pm2 start app.js 
--name=demo # 命名
--watch # 当文件变化时自动重启应用
-i max # 群集模式, 自动检测可用CPU的数量并运行尽可能多的进程
  1. 重启
pm2 restart app.js # 冷重启(同时杀死并重启所有进程)
pm2 reload app.js # 热重启(重新启动所有进程,保持至少一个进程可用)
pm2 gracefulReload all # 优雅地以群集模式重启
  1. 停止
pm2 stop all        # 停止所有应用
pm2 stop [AppName]  # 根据应用名停止指定应用
pm2 stop [ID]       # 根据应用id停止指定应用
  1. 删除
pm2 delete all        # 关闭并删除应用
pm2 delete [AppName]  # 根据应用名关闭并删除应用
pm2 delete [ID]       # 根据应用ID关闭并删除应用
  1. 列表
pm2 list
  1. 详情
pm2 show [AppName]   # 根据应用名查看
pm2 show [ID]        # 根据应用ID查看
  1. 日志
pm2 logs          # 查看所有应用日志
pm2 logs [Name]   # 根据指定应用名查看应用日志
pm2 logs [ID]     # 根据指定应用ID查看应用日志

应用配置

pm2 ecosystem  # 生成一个示例JSON配置文件
pm2 init       # 等同上

其他

  1. 开机自启动
pm2 startup
  1. 更新PM2
pm2 update
  1. 静态服务器
pm2 serve ./dist 9090  # 将目录dist作为静态服务器根目录,端口为9090
  1. 应用监控
pm2 monit  # 查看每个应用程序占用情况