pm2
使用场景
PM2 是一个流行的进程管理器,用于管理和保持应用程序在线。它适用于生产环境,可以帮助你启动、停止、重启和监视 Node.js 应用程序。
主要功能
以下是 PM2 的一些主要功能:
- 负载均衡:PM2 可以在多台服务器上平衡应用程序的负载。
- 自动重启:PM2 可以检测应用程序崩溃并自动重启它们。
- 日志管理:PM2 可以收集和存储应用程序的日志。
- 监控:PM2 提供了实时监控应用程序性能的功能。
- 进程管理: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
参数设置定时任务重启。具体操作如下:
- 命令行设置:
- 在启动应用时,可以使用
pm2 start app.js --cron-restart="0 0 * * *"
命令来设置每天午夜重启应用。 - 如果想要修改已有应用的重启计划,可以使用
pm2 restart app --cron-restart="0 0 * * *"
命令来实现。
- 配置文件设置:
- 如果你使用配置文件来管理你的应用,如
server.config.js
,可以在文件中指定cron_restart
属性,例如cron_restart: '0 0 * * *'
,这样也会设置应用每天午夜重启。
- CRON 时间格式:
- CRON 时间格式由五个星号组成,分别代表分钟、小时、日期、月份和星期几。例如,
"0 0 * * *"
表示每天的午夜。
- 环境变量:
- 在设置定时重启时,还可以通过
env
属性设置环境变量,如env: { NODE_ENV: 'development' }
,这样可以在不同的环境下使用不同的重启策略。
- 宝塔面板设置:
- 如果你使用的是宝塔面板,可以通过宝塔的任务计划功能来设置 PM2 应用的定时重启。首先全局安装 PM2,然后设置全局路径,最后使用
pm2 start server --watch
命令来启动应用并监视文件变化。
综上所述,通过这些方法,你可以确保你的 Node.js 应用在预定的时间自动重启,从而保持应用的稳定性和可靠性。