一招解决UnraidWebUI卡死后重启
大鹏APEX
编辑于 2023年09月15日 21:47

Unraid优惠折扣码55折:大鹏YYDS

1️⃣ 停止 Nginx 服务

  • 打开 SSH 或者直接使用连接到服务器的键盘/显示器。

输入以下命令以确保完全停止 nginx:

2️⃣ 检查 Nginx 进程

输入以下命令来检查是否还有 nginx 进程在运行:

3️⃣ 终止 Nginx 进程(如有必要) ️

如果第二步的命令返回了任何内容,执行以下命令来终止 nginx:

  • 再次执行第二步的命令以确认 nginx 已经被终止。

4️⃣ 重新启动 Nginx 服务

输入以下命令来重新启动 nginx:

Unraid社群答疑

更新UserScript脚本,可以设置每小时执行一次

代码块
JavaScript
自动换行
复制代码
#!/bin/bash

# WebUI 的 URL替换成Unraid管理地址
WEBUI_URL="http://localhost"

# 超时时间(秒)
TIMEOUT=10

# 检查 WebUI 是否响应
check_webui() {
  curl --max-time $TIMEOUT $WEBUI_URL > /dev/null 2>&1
  return $?
}

# 重启 nginx
restart_nginx() {
  # 停止 nginx 服务
  /etc/rc.d/rc.nginx stop
  
  # 检查 nginx 进程
  if ps -ef | grep "nginx" | grep -v "grep" > /dev/null; then
    # 终止 nginx 进程
    /etc/rc.d/rc.nginx term
  fi
  
  # 确保 nginx 已经被终止
  while ps -ef | grep "nginx" | grep -v "grep" > /dev/null; do
    sleep 1
  done
  
  # 重新启动 nginx 服务
  /etc/rc.d/rc.nginx start
}

# 主循环
while true; do
  # 检查 WebUI
  check_webui
  if [ $? -ne 0 ]; then
    echo "WebUI seems to be unresponsive. Restarting nginx..."
    restart_nginx
    echo "nginx restarted."
  else
    echo "WebUI is responsive."
  fi

  # 等待一段时间再次检查
  sleep 60
done
复制成功