From c086af6b9b2296e2ab45e571f0fdfca097f7f127 Mon Sep 17 00:00:00 2001 From: Osier Yang Date: Tue, 15 May 2012 16:22:28 +0800 Subject: [PATCH] libvirt-guests: Remove LISTFILE if it's empty when stopping service $LISTFILE is created even no domain is running, and the empty $LISTFILE could cause improper service status. stopped ,with saved guests Which is not right, as there is no domain was saved. --- tools/libvirt-guests.init.sh | 42 ++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/tools/libvirt-guests.init.sh b/tools/libvirt-guests.init.sh index aafb4d48d0..d5d42d6fd1 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" }