PM2 守护进程原理

PM2 如何通过子进程管理和自我守护实现 Node.js 应用的稳定运行

问题

PM2 守护进程的工作原理是什么?

解答

PM2 通过多层守护机制来管理 Node.js 应用,确保应用的稳定运行。

应用启动与管理

当使用 PM2 启动应用时,PM2 会创建子进程来运行应用程序,并将应用信息(PID、状态、日志路径等)持久化到本地数据库中。

# 启动应用
pm2 start app.js

# PM2 会记录应用信息
# - 进程 ID (PID)
# - 运行状态
# - 启动时间
# - 资源占用

进程监控与自动重启

PM2 持续监控应用进程的运行状态。当检测到应用异常退出时,会自动重启进程。同时定期检查资源占用情况,支持动态调整进程数和资源限制。

# 查看进程状态
pm2 status

# 设置自动重启策略
pm2 start app.js --max-memory-restart 300M

PM2 自身的守护机制

PM2 本身也运行在守护进程模式下。PM2 Daemon 会监控 PM2 主进程的健康状态,在出现异常时自动恢复,确保整个管理系统的可靠性。

日志管理

PM2 提供完整的日志管理功能,支持日志输出到文件、实时查看和过滤。

# 查看实时日志
pm2 logs

# 查看特定应用日志
pm2 logs app-name

# 清空日志
pm2 flush

关键点

  • PM2 将应用作为子进程启动,并持久化进程信息到本地数据库
  • 通过进程监控实现异常自动重启和资源管理
  • PM2 自身运行在守护进程模式,由 PM2 Daemon 监控和管理
  • 提供完整的日志管理功能,便于问题排查和数据分析