SuperAPI AI 工具集

pm2

部署与运维

查看项目

更新于 10-16 07:11

技能介绍

用途

PM2 是面向 Node.js 的生产级进程管理器,内置负载均衡能力,主要用于在生产环境中部署、监控并自动重启 Node 应用。

安装

npm install -g pm2

主要能力

  • 启动应用:可直接启动脚本,也可通过 npm 启动。
  • 进程管理:列出进程、重启、停止、删除进程,并支持零停机重载(reload)。
  • 日志查看:查看全部日志或指定应用日志,并可指定显示行数。
  • 监控与信息:查看应用详情,进行实时监控(monit)。
  • 开机自启:保存当前进程列表并生成启动脚本。
  • 集群与资源控制:支持集群模式(使用全部 CPU)、内存超限自动重启、定时重启(cron)。
  • 文件变更监听:通过 --watch 在文件变化时重启。

使用方式

快速启动应用:

# Start an app
pm2 start app.js
pm2 start npm --name "my-app" -- start
pm2 start "npm run start" --name my-app

指定端口或环境变量:

pm2 start npm --name "my-app" -- start -- --port 3000
PORT=3000 pm2 start npm --name "my-app" -- start

常用命令:

# List processes
pm2 list
pm2 ls

# Logs
pm2 logs              # All logs
pm2 logs my-app       # Specific app
pm2 logs --lines 100  # Last 100 lines

# Control
pm2 restart my-app
pm2 stop my-app
pm2 delete my-app
pm2 reload my-app     # Zero-downtime reload

# Info
pm2 show my-app
pm2 monit             # Real-time monitor

开机自启:

# Save current process list
pm2 save

# Generate startup script (run the output command with sudo)
pm2 startup

# Example output - run this:
# sudo env PATH=$PATH:/opt/homebrew/bin pm2 startup launchd -u username --hp /Users/username

Next.js / 生产构建:

# Build first
npm run build

# Start production server
pm2 start npm --name "my-app" -- start

# Or with ecosystem file
pm2 start ecosystem.config.js

Ecosystem 配置文件(ecosystem.config.js):

module.exports = {
  apps: [{
    name: 'my-app',
    script: 'npm',
    args: 'start',
    cwd: '/path/to/app',
    env: {
      NODE_ENV: 'production',
      PORT: 3000
    }
  }]
}

常用参数:

参数 说明
--name 进程名称
--watch 文件变化时重启
-i max 集群模式(使用全部 CPU)
--max-memory-restart 200M 内存超限自动重启
--cron "0 * * * *" 定时重启

清理:

pm2 delete all        # Remove all processes
pm2 kill              # Kill PM2 daemon
pm2 unstartup         # Remove startup script

适用场景

适用于在生产环境中部署、监控和自动重启 Node.js 应用,包括需要零停机重载、集群负载均衡、内存超限自动重启、定时重启或开机自启的场景,也适用于 Next.js 等需要先构建再启动生产服务器的项目。

限制

资料未提供关于收费、价格、平台支持范围、性能效果或具体版本要求的信息,暂未提供。