Files
proxmox/scripts/stop_ssh_tunnel.sh

50 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/bash
# Stop SSH tunnel for Proxmox API access
PROXMOX_HOST="${PROXMOX_HOST:-192.168.11.10}"
PROXMOX_PORT="${PROXMOX_PORT:-8006}"
TUNNEL_PID_FILE="/tmp/proxmox-tunnel-${PROXMOX_HOST}-${PROXMOX_PORT}.pid"
# Load from .env if available
if [ -f ~/.env ]; then
export $(grep -E "^PROXMOX_" ~/.env | grep -v "^#" | xargs)
PROXMOX_HOST="${PROXMOX_HOST:-192.168.11.10}"
PROXMOX_PORT="${PROXMOX_PORT:-8006}"
fi
if [ -f "$TUNNEL_PID_FILE" ]; then
TUNNEL_PID=$(cat "$TUNNEL_PID_FILE")
if ps -p "$TUNNEL_PID" > /dev/null 2>&1; then
echo "Stopping tunnel (PID: $TUNNEL_PID)..."
kill "$TUNNEL_PID" 2>/dev/null
sleep 1
if ps -p "$TUNNEL_PID" > /dev/null 2>&1; then
echo "Force killing..."
kill -9 "$TUNNEL_PID" 2>/dev/null
fi
rm -f "$TUNNEL_PID_FILE"
echo "✅ Tunnel stopped"
else
echo "Tunnel not running (stale PID file)"
rm -f "$TUNNEL_PID_FILE"
fi
else
echo "No tunnel PID file found"
echo "Checking for running tunnels..."
# Try to find tunnel by port
LOCAL_PORT="${PROXMOX_PORT:-8006}"
PIDS=$(lsof -ti:${LOCAL_PORT} 2>/dev/null)
if [ -n "$PIDS" ]; then
echo "Found processes on port $LOCAL_PORT: $PIDS"
read -p "Kill these processes? (y/N) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "$PIDS" | xargs kill 2>/dev/null
echo "✅ Processes killed"
fi
else
echo "No tunnel processes found"
fi
fi