配置 crontab 定时重启 Node.js 进程

您可以使用以下方法配置 crontab 定时重启 Node.js 进程:

友情链接:ACEJoy

1. 编写重启脚本

首先,您需要编写一个脚本,用于重启 Node.js 进程。以下是一个示例脚本:

#!/bin/bash

# 进程名称
PROCESS_NAME="your_process_name"

# 查找进程并重启
for i in $(seq 1 10); do
  PID=$(pgrep -f "$PROCESS_NAME$i")
  if [ $? -eq 0 ]; then
    echo "Restarting process $PROCESS_NAME$i with PID $PID..."
    kill -9 $PID
    # 重新启动进程
    # 使用您实际的启动命令替换以下命令
    nohup node your_app.js $i &
    echo "Process $PROCESS_NAME$i restarted."
  else
    echo "Process $PROCESS_NAME$i not found."
  fi
  sleep 1800 # 等待 30 分钟
done

解释:

  • #!/bin/bash: 指定脚本解释器为 bash。
  • PROCESS_NAME: 替换为您的 Node.js 进程名称。
  • pgrep -f "$PROCESS_NAME$i": 查找名为 PROCESS_NAME$i 的进程,并获取其 PID。
  • kill -9 $PID: 强制杀死进程。
  • nohup node your_app.js $i &: 重新启动 Node.js 进程,使用您的实际启动命令替换 node your_app.js $i
  • sleep 1800: 等待 30 分钟,然后重启下一个进程。

2. 配置 crontab

将脚本保存为 restart_process.sh 并赋予执行权限:

chmod +x restart_process.sh

然后使用 crontab -e 命令编辑 crontab 文件,添加以下内容:

0,30 * * * * /path/to/restart_process.sh

解释:

  • 0,30 * * * *: 表示每小时的 0 分和 30 分执行一次。
  • /path/to/restart_process.sh: 替换为 restart_process.sh 脚本的路径。

3. 测试

保存 crontab 文件并测试脚本是否正常工作。您可以使用 crontab -l 命令查看 crontab 文件内容,并使用 tail -f /var/log/cron 命令查看 cron 日志。

注意:

  • 确保 restart_process.sh 脚本中的启动命令正确,并根据您的实际情况进行修改。
  • 您可以根据需要调整脚本中的 sleep 时间,以控制重启间隔。
  • 为了确保重启进程的正常运行,建议您在脚本中添加日志记录功能,方便排查问题。

希望以上信息对您有所帮助。

发表评论