PM2 是一个常用的 Node.js 进程管理工具,可以方便地启动、停止、重启、监控应用程序的运行状态。本文将从入门到实用,介绍 PM2 的基本使用、常见问题及解决方案,以及一些实用的技巧和经验。
安装与基本使用
安装 PM2 可以使用 npm 命令行工具:
$ npm install pm2 -g
安装完毕后可以使用 pm2 --version
命令查看当前安装的版本。
启动/停止/重启应用程序
可以使用 pm2 start
命令启动应用程序:
$ pm2 start app.js
也可以指定应用程序的名称和日志文件:
$ pm2 start app.js --name myapp --log logs/myapp.log
或者使用配置文件启动多个应用程序:
$ pm2 start ecosystem.config.js
停止/重启应用程序的命令分别为 pm2 stop
和 pm2 restart
。
查看应用程序状态
可以使用 pm2 list
命令查看当前运行的应用程序列表:
$ pm2 list
也可以使用 pm2 monit
命令实时监控当前应用程序的 CPU、内存、网络等性能指标:
$ pm2 monit
日志管理
PM2 可以帮助我们记录应用程序的日志,方便排查问题和分析性能。可以使用 pm2 logs
命令查看当前所有应用程序的日志:
$ pm2 logs
也可以指定应用程序的名称和日志级别:
$ pm2 logs myapp --lines 100
自动重启应用程序
PM2 可以监控应用程序的文件变化,并自动重启应用程序。可以使用 pm2 start
命令启动应用程序并指定 --watch
选项:
$ pm2 start app.js --watch
配置文件
PM2 支持使用配置文件启动应用程序,便于管理和部署。配置文件可以使用 YAML 或 JSON 格式编写,以下是一个简单的示例:
-- -------------------- ---- ------- - -------------------- ----- - ----- ----- ------- ------ ---------- - ---- --------- ---------- ------- -------------- ------ ------------------
可以使用 pm2 start [filename]
命令指定配置文件启动应用程序:
$ pm2 start ecosystem.config.yml
常见问题及解决方案
PM2 无法正常启动应用程序
如果使用 PM2 启动应用程序时出现问题,可以先使用 pm2 logs
命令查看一下 PM2 自身的日志,以便确定问题所在。
常见问题包括:
- 应用程序未安装依赖包
- 应用程序监听的端口被占用
- 应用程序出现语法错误
- 应用程序访问权限不足
PM2 日志文件增长过快
如果 PM2 日志文件增长过快,可以通过 pm2 set pm2-logrotate:retain [num]
命令设置保留的日志文件数量,以及 pm2 set pm2-logrotate:max_size [size]
命令设置单个日志文件的最大尺寸。还可以使用 pm2 reloadLogs
命令重载日志文件。
PM2 监控指标异常
如果使用 PM2 监控应用程序时发现指标异常,可以使用 pm2 restart
命令重启应用程序,或者使用 --max-memory-restart
选项指定应用程序占用内存超过某个阈值时自动重启。
实用技巧和经验
PM2 和 Docker 的结合使用
如果应用程序运行在 Docker 容器中,可以使用 PM2 来管理容器中的多个进程。具体做法是,使用 CMD ["pm2-docker", "ecosystem.config.js"]
命令启动容器,并在配置文件中指定容器中的进程数量、端口号等信息。
使用 PM2 配置自动化部署流程
可以使用 PM2 配置自动化部署流程,实现应用程序的快速部署和更新。具体做法是,在版本控制系统中管理应用程序的代码和配置文件,并使用自动化工具(如 Jenkins、Travis CI 等)将代码自动构建并部署到服务器上,并使用 PM2 启动、停止和重启应用程序。
总结
PM2 是一个非常实用的 Node.js 进程管理工具,可以方便地启动、停止、重启、监控应用程序的运行状态。本文从入门到实用,介绍了 PM2 的基本使用、常见问题及解决方案,以及一些实用的技巧和经验,希望能对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64549f2f968c7c53b0871c17