From dde521066b79252110b5051b86b502003752fffa Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Thu, 29 Oct 2009 14:04:45 +0000 Subject: stubdom: make stubdom-dm exit properly 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 --- stubdom/stubdom-dm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'stubdom') diff --git a/stubdom/stubdom-dm b/stubdom/stubdom-dm index bf77d1fad1..c85fa53635 100644 --- a/stubdom/stubdom-dm +++ b/stubdom/stubdom-dm @@ -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 -- cgit v1.2.3