Graceful shutdown: use vtlcmd <index> exit before killing processes

This commit is contained in:
2025-12-12 09:52:31 +00:00
parent 690a7d4a0b
commit 35978ee629

View File

@@ -2,13 +2,30 @@
echo "Stopping mhvtl Virtual Tape Library..."
CONFIG_FILE="/etc/mhvtl/device.conf"
# First try graceful shutdown using vtlcmd for each configured Drive
if [ -f "$CONFIG_FILE" ] && command -v vtlcmd >/dev/null 2>&1; then
DRIVES=$(grep "^Drive:" "$CONFIG_FILE" | awk '{print $2}' | sort -u)
for d in $DRIVES; do
if pgrep -f "vtltape.*-q $d" >/dev/null; then
echo "Attempting graceful shutdown of vtltape (queue $d)..."
/usr/bin/vtlcmd $d exit || true
fi
done
# Give processes a few seconds to exit cleanly
sleep 3
fi
# Fallback: ensure vtllibrary and any remaining vtltape processes are killed
killall vtllibrary 2>/dev/null || true
killall vtltape 2>/dev/null || true
sleep 2
sleep 1
rm -f /var/lock/mhvtl/mhvtl* 2>/dev/null || true
# Try to remove kernel module if present
rmmod mhvtl 2>/dev/null || true
echo "mhvtl stopped successfully"