Graceful shutdown: use vtlcmd <index> exit before killing processes
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user