52 lines
1.5 KiB
Bash
52 lines
1.5 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
# 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
|