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 监控和管理
- 提供完整的日志管理功能,便于问题排查和数据分析
目录