以下是关于 PM2 的学习笔记,涵盖了一些关键概念、命令和使用示例,帮助你快速上手并理解 PM2 的功能。
什么是 PM2?
PM2 是一个用于 Node.js 应用的进程管理器,提供进程守护、负载均衡、日志管理等功能。它可以帮助开发者在生产环境中更好地管理和维护应用程序。
安装 PM2
PM2 可以通过 npm 全局安装:
npm install pm2 -g
基本命令
-
启动应用:启动一个 Node.js 应用程序。
pm2 start app.js -
查看进程列表:显示所有由 PM2 管理的进程。
pm2 list -
重启应用:重启指定的应用。
pm2 restart app_name_or_id -
停止应用:停止指定的应用。
pm2 stop app_name_or_id -
删除应用:从 PM2 中删除指定的应用。
pm2 delete app_name_or_id -
查看日志:查看应用程序的输出日志。
pm2 logs
高级功能
-
集群模式:利用多核 CPU 提升应用性能。
pm2 start app.js -i max # 启动最大数量的实例 -
监控:实时监控应用的资源使用情况。
pm2 monit -
持久化进程列表:保存当前的进程列表,以便在系统重启后自动恢复。
pm2 save -
自动启动:配置系统启动时自动启动 PM2 管理的应用。
pm2 startup
配置文件
PM2 支持通过 JSON 配置文件来管理应用,便于批量管理和部署。
-
ecosystem.config.js:配置文件示例
module.exports = { apps: [ { name: "my-app", script: "./app.js", instances: "max", exec_mode: "cluster", env: { NODE_ENV: "production", }, }, ], }; -
启动配置文件中的应用:
pm2 start ecosystem.config.js
日志管理
PM2 提供了强大的日志管理功能,可以查看和管理应用的日志输出:
-
查看某个应用的日志:
pm2 logs app_name_or_id -
合并日志输出:
pm2 logs --merge
部署管理
PM2 提供了简单的部署工具,可以通过命令行管理应用的部署:
-
配置部署环境:
module.exports = { deploy: { production: { user: "node", host: "212.83.163.1", ref: "origin/master", repo: "git@github.com:repo.git", path: "/var/www/production", "post-deploy": "npm install && pm2 reload ecosystem.config.js --env production", }, }, }; -
执行部署:
pm2 deploy ecosystem.config.js production setup pm2 deploy ecosystem.config.js production
总结
PM2 是一个功能强大且灵活的工具,适用于 Node.js 应用的生产环境。通过学习和掌握 PM2 的基本和高级功能,可以显著提高应用的稳定性和性能。
通过这些笔记,希望你能更好地理解和使用 PM2 来管理你的 Node.js 应用程序!