PM2 学习笔记

335 阅读2分钟

以下是关于 PM2 的学习笔记,涵盖了一些关键概念、命令和使用示例,帮助你快速上手并理解 PM2 的功能。


什么是 PM2?

PM2 是一个用于 Node.js 应用的进程管理器,提供进程守护、负载均衡、日志管理等功能。它可以帮助开发者在生产环境中更好地管理和维护应用程序。

安装 PM2

PM2 可以通过 npm 全局安装:

npm install pm2 -g

基本命令

  • 启动应用:启动一个 Node.js 应用程序。

    pm2 start app.js
    
  • 查看进程列表:显示所有由 PM2 管理的进程。

    pm2 list
    
  • 重启应用:重启指定的应用。

    pm2 restart app_name_or_id
    
  • 停止应用:停止指定的应用。

    pm2 stop app_name_or_id
    
  • 删除应用:从 PM2 中删除指定的应用。

    pm2 delete app_name_or_id
    
  • 查看日志:查看应用程序的输出日志。

    pm2 logs
    

高级功能

  • 集群模式:利用多核 CPU 提升应用性能。

    pm2 start app.js -i max  # 启动最大数量的实例
    
  • 监控:实时监控应用的资源使用情况。

    pm2 monit
    
  • 持久化进程列表:保存当前的进程列表,以便在系统重启后自动恢复。

    pm2 save
    
  • 自动启动:配置系统启动时自动启动 PM2 管理的应用。

    pm2 startup
    

配置文件

PM2 支持通过 JSON 配置文件来管理应用,便于批量管理和部署。

  • ecosystem.config.js:配置文件示例

    module.exports = {
      apps: [
        {
          name: "my-app",
          script: "./app.js",
          instances: "max",
          exec_mode: "cluster",
          env: {
            NODE_ENV: "production",
          },
        },
      ],
    };
    
  • 启动配置文件中的应用

    pm2 start ecosystem.config.js
    

日志管理

PM2 提供了强大的日志管理功能,可以查看和管理应用的日志输出:

  • 查看某个应用的日志

    pm2 logs app_name_or_id
    
  • 合并日志输出

    pm2 logs --merge
    

部署管理

PM2 提供了简单的部署工具,可以通过命令行管理应用的部署:

  • 配置部署环境

    module.exports = {
      deploy: {
        production: {
          user: "node",
          host: "212.83.163.1",
          ref: "origin/master",
          repo: "git@github.com:repo.git",
          path: "/var/www/production",
          "post-deploy": "npm install && pm2 reload ecosystem.config.js --env production",
        },
      },
    };
    
  • 执行部署

    pm2 deploy ecosystem.config.js production setup
    pm2 deploy ecosystem.config.js production
    

总结

PM2 是一个功能强大且灵活的工具,适用于 Node.js 应用的生产环境。通过学习和掌握 PM2 的基本和高级功能,可以显著提高应用的稳定性和性能。

通过这些笔记,希望你能更好地理解和使用 PM2 来管理你的 Node.js 应用程序!