pm2
PM2是一个流行的Node.js应用程序的进程管理器,可以帮助开发者在生产环境中高效地启动、停止、监控和维护应用程序。以下是PM2的一些主要用法和用途:
用途
- 负载均衡: PM2可以自动重启崩溃的应用程序,并且可以通过其内置的负载均衡器来利用多核系统。
- 零停机重启: PM2支持无停机重启。
- 状态监控: PM2提供了一个简单的监控界面来查看应用程序的资源使用情况。
- 日志管理: PM2可以帮助开发者管理和保持应用程序日志的清晰。
- 启动脚本: PM2可以生成启动脚本,以确保应用程序在服务器重启后自动启动。
用法
安装PM2:
shnpm install pm2 -g
使用npm全局安装PM2,这样可以在任何地方使用PM2命令。
启动应用程序:
shpm2 start app.js
使用
pm2 start
命令启动一个Node.js应用程序。app.js
是你的Node.js应用程序的入口文件。列出运行的进程:
shpm2 list
显示当前由PM2管理的所有进程的状态。
监控应用程序:
shpm2 monit
实时监控应用程序的CPU和内存使用情况。
重启应用程序:
shpm2 restart <app_name_or_id>
重启一个或多个应用程序。
停止应用程序:
shpm2 stop <app_name_or_id>
停止一个或多个应用程序。
删除应用程序:
shpm2 delete <app_name_or_id>
从PM2列表中删除一个或多个应用程序。
日志管理:
shpm2 logs
查看所有应用程序的日志输出。
配置文件: 使用
ecosystem.config.js
文件来配置应用程序的启动参数、环境变量等。
进阶
负载均衡(Cluster Mode): PM2的集群模式允许你轻松地在多核CPU系统上进行负载均衡。它可以启动多个Node.js实例(通常与CPU核心数相同),并自动分配负载和管理进程。这样可以提高应用程序的性能和可靠性。要启动集群模式,可以使用以下命令:
shpm2 start app.js -i max
-i max
选项告诉PM2自动检测CPU核心数并启动相应数量的实例。你也可以指定一个具体的实例数目。日志管理: PM2提供了强大的日志管理功能,可以帮助你跟踪所有由PM2管理的应用程序的输出。默认情况下,PM2会将标准输出(stdout)和标准错误(stderr)记录到日志文件中。你可以使用以下命令查看日志:
shpm2 logs
你也可以查看特定应用程序的日志:
shpm2 logs <app_name_or_id>
PM2还允许你控制日志文件的大小,通过设置日志轮转来防止日志文件无限制地增长。使用
pm2 logrotate
模块可以实现这一功能。监控: PM2内置了一个监控工具,可以实时查看应用程序的性能指标,如CPU和内存使用情况。使用以下命令启动监控面板:
shpm2 monit
此外,PM2 Plus(或PM2.io)是PM2的高级监控和管理平台,提供了更多高级功能,如远程监控、自定义指标、警报系统等。
进程管理: PM2允许你管理应用程序的生命周期,包括启动、重启、停止和删除进程。你可以设置应用程序在崩溃时自动重启,或者在文件变化时重启(使用
--watch
选项)。配置文件(Ecosystem File): PM2支持使用
ecosystem.config.js
文件来配置你的应用程序。这个文件可以定义多个应用程序的配置,包括环境变量、日志文件路径、实例数等。这使得部署和管理Node.js应用程序更加方便和可靠。启动脚本: PM2可以帮助你生成系统启动脚本,以确保在服务器重启后,你的应用程序能够自动启动。使用以下命令生成启动脚本:
shpm2 startup
部署工具: PM2还包含了一个简单的部署系统,可以帮助你更新服务器上的应用程序。你可以在
ecosystem.config.js
文件中配置部署任务,并使用pm2 deploy
命令来执行部署。
更多详细信息和高级配置,建议查阅PM2官方文档。