Nodejs PM2 基本使用(快速上手)

一、简介

  • PM2 是一个功能强大的 Node.js 进程管理器,它可以帮助管理守护负载均衡监控 Node.js 应用。使用 PM2,可以让应用在生产环境中更加稳定和可靠。

  • 安装

    $ npm install -g pm2
    

二、启动和管理应用

  • 可以通过 PM2 启动一个 Node.js 应用。假设应用入口文件是 app.js,可以使用以下命令启动:

    $ pm2 start app.js
    
  • 为应用指定一个名称,这样管理和查看时更容易:

    $ pm2 start app.js --name "my-app"
    
  • 查看当前运行的应用:

    $ pm2 list
    

    这将显示所有正在运行的应用及其状态。

  • 查看某个应用的日志:

    $ pm2 logs my-app
    
  • 看所有应用的日志:

    $ pm2 logs
    

三、常用命令

  • 停止应用,可以使用应用的名称:

    $ pm2 stop my-app
    

    或者使用应用的 ID

    $ pm2 stop 0
    
  • 重启应用

    pm2 restart my-app
    

    或者使用应用的 ID

    $ pm2 restart 0
    
  • 删除应用

    $ pm2 delete my-app
    
  • 查看应用的状态,要查看单个应用的详细信息(如 CPU 和内存使用情况):

    $ pm2 show my-app
    
  • 监控应用的资源使用,PM2 可以监控应用的资源使用情况(如 CPU 和内存):

    $ pm2 monit
    

四、配置文件(可选)

  • 可以使用 ecosystem.config.js 文件来管理应用的配置,这个文件通常放在 Node.js 项目根目录,也就是与 package.json 文件在同一层级的位置。

    my-node-app/
    │
    ├── app.js
    ├── app2.js
    ├── ecosystem.config.js  <-- 放在这里
    ├── package.json
    └── node_modules/
    
  • 可以手动创建,也可以使用命令创建,进入项目根目录执行命令,会生成一个基本的 ecosystem.config.js 文件,之后可以根据项目需求修改文件:

    $ pm2 ecosystem
    
  • 这个配置文件可以在启动多个应用时提供更多的控制和定制。附:# PM2 配置文件(ecosystem.config.js 字段详细介绍)

    // ecosystem.config.js
    module.exports = {
      apps: [
        {
          name: 'app1',              // 应用名称
          script: './app.js',        // 启动文件
          instances: 'max',          // 根据 CPU 核数启动最大进程数
          exec_mode: 'cluster',      // 启用集群模式
          watch: true,               // 监控文件变动
          env: {
            NODE_ENV: 'development',
          },
          env_production: {
            NODE_ENV: 'production',
          },
        },
        {
          name: 'app2',
          script: './app2.js',
          instances: 2,             // 启动 2 个进程
        }
      ]
    };
    
  • 当有了 ecosystem.config.js 文件后,可以通过以下命令启动配置中的所有应用:

    $ pm2 start ecosystem.config.js
    

    如果只想启动其中的某个应用,可以指定应用的名称:

    $ pm2 start ecosystem.config.js --only app1
    

五、使用 PM2 在服务器上保持应用持续运行

  • 保存应用的进程列表

    可以使用 pm2 save 命令来保存当前的进程列表,以便重启后自动恢复:

    $ pm2 save
    
  • 启动时自动恢复应用

    PM2 提供了一个 startup 命令,可以在系统重启后自动启动 PM2 和应用。运行以下命令来生成启动脚本并让 PM2 在系统启动时自动恢复应用:

    $ pm2 startup
    

    此命令会生成一条类似于以下的命令:

    $ sudo env PATH=$PATH:/usr/local/bin pm2 startup systemd -u <username> --hp /home/<username>
    

    运行生成的命令来注册启动脚本。

  • 保存配置并重启

    在设置好 startup 后,使用以下命令保存进程列表,并确保在重启后恢复:

    $ pm2 save
    

六、PM2 集群模式

  • PM2 提供集群模式来启用多核处理。通过集群模式,PM2 会根据服务器的 CPU 核数启动多个进程,从而提高应用的并发处理能力。

  • 启动集群模式

    可以在启动应用时使用 -i 参数指定启动的进程数量。例如,如果服务器有 4CPU 核心,可以启动 4 个进程:

    $ pm2 start app.js -i 4
    

    如果想让 PM2 自动根据 CPU 核心数来启动进程,可以使用:

    $ pm2 start app.js -i max
    

    这将根据服务器的 CPU 核心数来启动最大数量的进程。

  • PM2 的持久化和监控

    PM2 提供了 PM2 PlusKeymetrics 服务来帮助监控和管理 Node.js 应用。可以通过 PM2 注册并访问这些服务,实时查看应用的健康状况和性能指标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值