--- xen-4.3.1.orig/tools/hotplug/Linux/init.d/xendomains 2013-07-19 14:52:52.159013757 -0500 +++ xen-4.3.1/tools/hotplug/Linux/init.d/xendomains 2013-07-19 14:56:00.079145322 -0500 @@ -51,17 +51,13 @@ fi # See docs/misc/distro_mapping.txt -if [ -d /var/lock/subsys ]; then - LOCKFILE=/var/lock/subsys/xendomains +if [ -d /run/lock/subsys ]; then + LOCKFILE=/run/lock/subsys/xendomains else - LOCKFILE=/var/lock/xendomains + LOCKFILE=/run/lock/xendomains fi -if [ -d /etc/sysconfig ]; then - XENDOM_CONFIG=/etc/sysconfig/xendomains -else - XENDOM_CONFIG=/etc/default/xendomains -fi +XENDOM_CONFIG=/etc/conf.d/xendomains test -r $XENDOM_CONFIG || { echo "$XENDOM_CONFIG not existing"; if [ "$1" = "stop" ]; then exit 0; @@ -185,8 +181,13 @@ # read name from xen config file rdname() { - NM=$($CMD create --quiet --dryrun --defconfig "$1" | - sed -n 's/^.*(name \(.*\))$/\1/p') + if [ "$CMD" == "xm" ]; then + NM=$($CMD create --quiet --dryrun --defconfig "$1" | + sed -n 's/^.*(name \(.*\))$/\1/p') + else + NM=$($CMD create --quiet --dryrun --defconfig "$1" | + perl -pe 's|^.*"name":"(.*?)".*$|$1|') + fi } rdnames() @@ -229,15 +230,15 @@ rdname $1 RC=1 name=;id= - while read LN; do - parseln "$LN" || continue + while read id; do if test $id = 0; then continue; fi + name=`xenstore-read /local/domain/$id/name` case $name in ($NM) RC=0 ;; esac - done < <($CMD list -l | grep "$LIST_GREP") + done < <(xenstore-list /local/domain) return $RC } @@ -312,6 +313,8 @@ all_zombies() { + return 0 + name=;id= while read LN; do parseln "$LN" || continue @@ -363,9 +366,9 @@ fi echo -n "Shutting down Xen domains:" name=;id= - while read LN; do - parseln "$LN" || continue + while read id; do if test $id = 0; then continue; fi + name=`xenstore-read /local/domain/$id/name` echo -n " $name" if test "$XENDOMAINS_AUTO_ONLY" = "true"; then eval " @@ -450,7 +453,7 @@ fi kill $WDOG_PID >/dev/null 2>&1 fi - done < <($CMD list -l | grep "$LIST_GREP") + done < <(xenstore-list /local/domain) # NB. this shuts down ALL Xen domains (politely), not just the ones in # AUTODIR/* @@ -479,15 +482,15 @@ check_domain_up() { name=;id= - while read LN; do - parseln "$LN" || continue + while read id; do if test $id = 0; then continue; fi + name=`xenstore-read /local/domain/$id/name` case $name in ($1) return 0 ;; esac - done < <($CMD list -l | grep "$LIST_GREP") + done < <(xenstore-list /local/domain) return 1 }