summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2013-11-01 15:58:33 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-11-04 10:53:50 +0000
commit25f50e24c72aa5f253ff5d9186637adb15a20123 (patch)
treef9ac76572175cab57065103b142122fa28d1b3e7
parenta6b357a9af161f7dae598a9477dd84cc431362f8 (diff)
downloadpoky-25f50e24c72aa5f253ff5d9186637adb15a20123.tar.gz
poky-25f50e24c72aa5f253ff5d9186637adb15a20123.tar.bz2
poky-25f50e24c72aa5f253ff5d9186637adb15a20123.zip
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 <alexandru.damian@intel.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xbitbake/bin/toaster29
1 files changed, 20 insertions, 9 deletions
diff --git a/bitbake/bin/toaster b/bitbake/bin/toaster
index 16de52b115..cc631f6f56 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