diff --git a/tools/libvirt-guests.init.sh b/tools/libvirt-guests.init.sh index aafb4d48d03d6f73648043bcdcaf83d5cb2c151b..d5d42d6fd1e11ce75816ee3ac82073e0925c7c0f 100644 --- a/tools/libvirt-guests.init.sh +++ b/tools/libvirt-guests.init.sh @@ -461,26 +461,30 @@ stop() { done set +f - while read uri list; do - if "$suspending"; then - eval_gettext "Suspending guests on \$uri URI..."; echo - else - eval_gettext "Shutting down guests on \$uri URI..."; echo - fi + if [ -s "$LISTFILE" ]; then + while read uri list; do + if "$suspending"; then + eval_gettext "Suspending guests on \$uri URI..."; echo + else + eval_gettext "Shutting down guests on \$uri URI..."; echo + fi - if [ "$PARALLEL_SHUTDOWN" -gt 1 ] && - ! "$suspending"; then - shutdown_guests_parallel "$uri" "$list" - else - for guest in $list; do - if "$suspending"; then - suspend_guest "$uri" "$guest" - else - shutdown_guest "$uri" "$guest" - fi - done - fi - done <"$LISTFILE" + if [ "$PARALLEL_SHUTDOWN" -gt 1 ] && + ! "$suspending"; then + shutdown_guests_parallel "$uri" "$list" + else + for guest in $list; do + if "$suspending"; then + suspend_guest "$uri" "$guest" + else + shutdown_guest "$uri" "$guest" + fi + done + fi + done <"$LISTFILE" + else + rm -f "$LISTFILE" + fi rm -f "$VAR_SUBSYS_LIBVIRT_GUESTS" }