进程可能会崩溃导致停掉,现在用sh脚本进行监控,停掉自动重启.

脚本命名:monitor.sh

隐藏启动命令:nohup ./monitor.sh &

代码如下,需要按实际环境,修改脚本中的路径和网络TOKEN:

#!/bin/bash

LOG_FILE="/root/monitor.log"
PROCESS_NAME="nattunnel"

# 检查进程是否存在
check_process() {
  if ! pidof "$PROCESS_NAME" >/dev/null; then
    return 1  # 进程不存在
  else
    return 0  # 进程存在
  fi
}

# 主循环
while true; do
  check_process
  if [ $? -ne 0 ]; then
    echo "[$(date +'%Y-%m-%d %H:%M:%S')] 服务不存在,正在启动..." >> "$LOG_FILE"
    nohup "/root/$PROCESS_NAME" -tTOKEN >> "$LOG_FILE" 2>&1 &
    echo "[$(date +'%Y-%m-%d %H:%M:%S')] 已启动,PID: $!" >> "$LOG_FILE"
  else
    echo "[$(date +'%Y-%m-%d %H:%M:%S')] 服务已存在,PID: $(pidof "$PROCESS_NAME")" >> "$LOG_FILE"
  fi
  sleep 5
done
文档更新时间: 2025-07-15 09:27   作者:admin