79 lines
2.3 KiB
Bash
79 lines
2.3 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
# Automated cleanup script for VM 100 on Proxmox node
|
|||
|
|
# Run this script on the Proxmox node: root@ml110-01
|
|||
|
|
|
|||
|
|
VMID=100
|
|||
|
|
|
|||
|
|
echo "=== Automated Cleanup for VM $VMID ==="
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# 1. Kill all stuck processes
|
|||
|
|
echo "1. Killing stuck processes..."
|
|||
|
|
pkill -9 -f "task.*$VMID" 2>/dev/null && echo " ✅ Killed task processes" || echo " ℹ️ No task processes found"
|
|||
|
|
pkill -9 -f "qm.*$VMID" 2>/dev/null && echo " ✅ Killed qm processes" || echo " ℹ️ No qm processes found"
|
|||
|
|
pkill -9 -f "qemu.*$VMID" 2>/dev/null && echo " ✅ Killed qemu processes" || echo " ℹ️ No qemu processes found"
|
|||
|
|
|
|||
|
|
# Wait for processes to die
|
|||
|
|
sleep 3
|
|||
|
|
|
|||
|
|
# 2. Remove lock file
|
|||
|
|
echo ""
|
|||
|
|
echo "2. Removing lock file..."
|
|||
|
|
if [ -f "/var/lock/qemu-server/lock-$VMID.conf" ]; then
|
|||
|
|
rm -f "/var/lock/qemu-server/lock-$VMID.conf"
|
|||
|
|
if [ ! -f "/var/lock/qemu-server/lock-$VMID.conf" ]; then
|
|||
|
|
echo " ✅ Lock file removed"
|
|||
|
|
else
|
|||
|
|
echo " ⚠️ Failed to remove lock file"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
else
|
|||
|
|
echo " ℹ️ Lock file already removed"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 3. Verify cleanup
|
|||
|
|
echo ""
|
|||
|
|
echo "3. Verifying cleanup..."
|
|||
|
|
REMAINING_PROCS=$(ps aux | grep -E "task.*$VMID|qm.*$VMID|qemu.*$VMID" | grep -v grep)
|
|||
|
|
if [ -z "$REMAINING_PROCS" ]; then
|
|||
|
|
echo " ✅ No processes remaining"
|
|||
|
|
else
|
|||
|
|
echo " ⚠️ Some processes still running:"
|
|||
|
|
echo "$REMAINING_PROCS" | while read line; do
|
|||
|
|
echo " $line"
|
|||
|
|
done
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
LOCK_EXISTS=$(ls -la /var/lock/qemu-server/lock-$VMID.conf 2>&1)
|
|||
|
|
if echo "$LOCK_EXISTS" | grep -q "No such file"; then
|
|||
|
|
echo " ✅ Lock file confirmed removed"
|
|||
|
|
else
|
|||
|
|
echo " ⚠️ Lock file still exists:"
|
|||
|
|
echo " $LOCK_EXISTS"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 4. Attempt unlock
|
|||
|
|
echo ""
|
|||
|
|
echo "4. Attempting unlock..."
|
|||
|
|
if qm unlock $VMID 2>&1; then
|
|||
|
|
echo " ✅ VM unlocked successfully"
|
|||
|
|
else
|
|||
|
|
UNLOCK_RESULT=$?
|
|||
|
|
echo " ⚠️ Unlock returned exit code: $UNLOCK_RESULT"
|
|||
|
|
echo " (This may be normal if lock was already cleared)"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 5. Final status
|
|||
|
|
echo ""
|
|||
|
|
echo "5. Final VM status..."
|
|||
|
|
qm status $VMID 2>&1 | head -5
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "=== Cleanup Complete ==="
|
|||
|
|
echo ""
|
|||
|
|
echo "Next steps:"
|
|||
|
|
echo "1. Monitor from Kubernetes: kubectl get proxmoxvm basic-vm-001 -w"
|
|||
|
|
echo "2. Provider will automatically retry within 1 minute"
|
|||
|
|
echo "3. VM should complete configuration and boot"
|
|||
|
|
|