diff --git a/gfxcreate.sh b/gfxcreate.sh index 24fb6d2..f2c89b8 100644 --- a/gfxcreate.sh +++ b/gfxcreate.sh @@ -8,13 +8,25 @@ while getopts "R" opt; do done if $remove; then + # Сначала запрашиваем остановку ВСЕХ тачек, чтобы сэкономить время for line in $(cat gfx_hosts) do ip=$(echo $line | cut -d ';' -f 1) vmid=$(echo $ip | cut -d '.' -f 3,4 | sed 's/\.// ') qm stop $vmid - qm destroy $vmid --destroy-unreferenced-disks --purge done + # А теперь проверяем, что остановлена, и удаляем + for line in $(cat gfx_hosts) + do + ip=$(echo $line | cut -d ';' -f 1) + vmid=$(echo $ip | cut -d '.' -f 3,4 | sed 's/\.// ') + until [[ (qm status $vmid | cut -d ' ' -f 2) -ne "stopped" ]] + do + echo "Waiting for VM $vmid become stopped..." + sleep 1 + done + qm destroy $vmid --destroy-unreferenced-disks --purge + done echo "Specified VMs REMOVED." exit 0 fi