From: Alexandru DAMIAN Date: Fri, 1 Nov 2013 15:58:33 +0000 (+0000) Subject: bitbake: toaster: server shutdown on terminal exit X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16067d529597d14542c574c9788f9aac344178f2;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git bitbake: toaster: server shutdown on terminal exit If the terminal where the server was started is closed, the bitbake server should shutdown. Currently the system is left in hanging state. This patch uses "trap" command to make sure the servers are closed on terminal exit. [YOCTO #5376] (Bitbake rev: 5f8b97010f7b465753b6ff6275d18426006ee14b) Signed-off-by: Alexandru DAMIAN Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- diff --git a/bitbake/bin/toaster b/bitbake/bin/toaster index 16de52b1154..cc631f6f569 100755 --- a/bitbake/bin/toaster +++ b/bitbake/bin/toaster @@ -49,6 +49,19 @@ function webserverStartAll() return $retval } +# define the stop command +function stop_system() +{ + if [ -f ${BUILDDIR}/.toasterui.pid ]; then + kill $(< ${BUILDDIR}/.toasterui.pid ) + rm ${BUILDDIR}/.toasterui.pid + fi + BBSERVER=localhost:8200 bitbake -m + unset BBSERVER + webserverKillAll + # force stop any misbehaving bitbake server + lsof bitbake.lock | awk '{print $2}' | grep "[0-9]\+" | xargs -n1 -r kill +} # We make sure we're running in the current shell and in a good environment @@ -116,6 +129,9 @@ and fi + + + # Execute the commands case $CMD in @@ -127,17 +143,12 @@ case $CMD in if [ $NOTOASTERUI == 0 ]; then # we start the TOASTERUI only if not inhibited bitbake --observe-only -u toasterui >${BUILDDIR}/toaster_ui.log 2>&1 & echo $! >${BUILDDIR}/.toasterui.pid fi + # stop system on terminal exit + trap stop_system SIGHUP ;; stop ) - if [ -f ${BUILDDIR}/.toasterui.pid ]; then - kill $(< ${BUILDDIR}/.toasterui.pid ) - rm ${BUILDDIR}/.toasterui.pid - fi - bitbake -m - unset BBSERVER - webserverKillAll - # force stop any misbehaving bitbake server - lsof bitbake.lock | awk '{print $2}' | grep "[0-9]\+" | xargs -n1 -r kill + stop_system + trap '' SIGHUP ;; esac