进程可能会崩溃导致停掉,现在用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