Skip to content
📈0️⃣

pm2

使用场景

PM2 是一个流行的进程管理器,用于管理和保持应用程序在线。它适用于生产环境,可以帮助你启动、停止、重启和监视 Node.js 应用程序。

主要功能

以下是 PM2 的一些主要功能:

  1. 负载均衡:PM2 可以在多台服务器上平衡应用程序的负载。
  2. 自动重启:PM2 可以检测应用程序崩溃并自动重启它们。
  3. 日志管理:PM2 可以收集和存储应用程序的日志。
  4. 监控:PM2 提供了实时监控应用程序性能的功能。
  5. 进程管理:PM2 允许你查看和管理正在运行的进程。

常用命令

要使用 PM2,首先需要安装它。在命令行中运行以下命令:

bash
npm install -g pm2

接下来,你可以使用 PM2 启动一个 Node.js 应用程序。例如,假设你有一个名为 app.js 的 Node.js 文件,你可以使用以下命令启动它:

app.js 所在文件夹启动

bash
pm2 start app.js

其他位置启动使用全路径

bash
pm2 start /www/wwwroot/www.zichin.com/server/tongji/app.js

这将使用 PM2 启动你的应用程序,并将其设置为在后台运行。你可以使用以下命令查看正在运行的进程:

bash
pm2 list

要停止一个进程,可以使用以下命令:

bash
pm2 stop <id>

其中 <id> 是你要停止的进程的 ID。

要重启一个进程,可以使用以下命令:

bash
pm2 restart <id>

要查看应用程序的日志,可以使用以下命令:

bash
pm2 logs <id>

这将显示与指定进程相关的所有日志。

PM2 进阶

PM2 是如何实现进程重启的

PM2 通过监听应用程序的退出事件和崩溃事件来实现进程的自动重启

PM2 是一个带有负载均衡功能的 Node.js 应用的生产过程管理工具,它允许你利用其内置的重启策略来确保应用持续在线。具体来说,以下是 PM2 实现进程重启的几种方式:

  • 自动检测并重启:当应用程序意外退出、事件循环变为空(在 Node.js 中)或应用程序崩溃时,PM2 会自动重启该应用程序。
  • 配置文件重启:可以通过编辑应用的配置文件来设置重启策略,如 server.config.js 文件中的 cron_restart 选项。
  • 定时任务重启:可以设置 CRON 表达式来定义定时重启的时间点,例如每天午夜重启应用。这可以通过命令行参数 --cron-restart 设置,或者在应用的配置文件中指定。
  • 手动控制重启:除了自动重启机制外,你还可以使用 PM2 提供的命令手动控制应用的重启,如使用 pm2 restart 命令来重启特定的应用。

通过这些方法,PM2 确保了应用程序的高可用性和稳定性,减少了因意外情况导致的服务中断时间。

总之,PM2 是一个非常有用的工具,可以帮助你轻松地管理和保持 Node.js 应用程序在线。

PM2 如何设置定时任务重启?

PM2 通过 --cron-restart 参数设置定时任务重启。具体操作如下:

  1. 命令行设置
  • 在启动应用时,可以使用 pm2 start app.js --cron-restart="0 0 * * *" 命令来设置每天午夜重启应用。
  • 如果想要修改已有应用的重启计划,可以使用 pm2 restart app --cron-restart="0 0 * * *" 命令来实现。
  1. 配置文件设置
  • 如果你使用配置文件来管理你的应用,如 server.config.js,可以在文件中指定 cron_restart 属性,例如 cron_restart: '0 0 * * *',这样也会设置应用每天午夜重启。
  1. CRON 时间格式
  • CRON 时间格式由五个星号组成,分别代表分钟、小时、日期、月份和星期几。例如,"0 0 * * *" 表示每天的午夜。
  1. 环境变量
  • 在设置定时重启时,还可以通过 env 属性设置环境变量,如 env: { NODE_ENV: 'development' },这样可以在不同的环境下使用不同的重启策略。
  1. 宝塔面板设置
  • 如果你使用的是宝塔面板,可以通过宝塔的任务计划功能来设置 PM2 应用的定时重启。首先全局安装 PM2,然后设置全局路径,最后使用 pm2 start server --watch 命令来启动应用并监视文件变化。

综上所述,通过这些方法,你可以确保你的 Node.js 应用在预定的时间自动重启,从而保持应用的稳定性和可靠性。