]> xenbits.xensource.com Git - people/liuw/stubdom.git/commitdiff
stubdom: make stubdom-dm exit properly
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 29 Oct 2009 14:04:45 +0000 (14:04 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 29 Oct 2009 14:04:45 +0000 (14:04 +0000)
The built-in bash command wait should be able to take a pid argument
and just wait for the specified process to die, but it currently has a
bug and what actually does is waiting for the death of all the
children.  For this reason the stubdom-dm script doesn't exit properly
after stubdom destruction.  This patch solves the issue spawning only
one child, removing the sleep subprocess workaround that was used to
create a usable stdin for "xm console" and replacing it with a fifo.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
stubdom-dm

index bf77d1fad1944d4741b7c3b9138ca7bff8f2a8b8..c85fa536356f49191f2bf907c8a620a7b32260c9 100644 (file)
@@ -80,8 +80,8 @@ done
 # Termination handler
 
 term() {
-    kill %1
     [ -n "$vncpid" ] && kill -9 $vncpid
+    rm -f /tmp/domname-dm
     rm ${stubdom_configdir}/$domname-dm
     exit 0
 }
@@ -154,11 +154,10 @@ do
     j=$(( $j + 1 ))
 done
 echo " ] " >> ${stubdom_configdir}/$domname-dm
-creation="xm create -c ${stubdom_configdir}/$domname-dm target=$domid memory=32 extra=\"$extra\""
 
-(while true ; do sleep 60 ; done) | /bin/sh -c "$creation" &
-#xterm -geometry +0+0 -e /bin/sh -c "$creation ; echo ; echo press ENTER to shut down ; read" &
-consolepid=$!
+mkfifo /tmp/$domname-dm
+xm create -c ${stubdom_configdir}/$domname-dm target=$domid memory=32 extra="$extra" < /tmp/$domname-dm &
+exec 4>/tmp/$domname-dm
 
 
 ###########
@@ -178,6 +177,6 @@ then
 fi
 
 # wait for SIGHUP or stubdom termination
-wait $consolepid
+wait
 
 term