summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/bitbake-worker8
1 files changed, 8 insertions, 0 deletions
diff --git a/bin/bitbake-worker b/bin/bitbake-worker
index bc13b4f31..c173dbe01 100755
--- a/bin/bitbake-worker
+++ b/bin/bitbake-worker
@@ -242,6 +242,14 @@ class BitbakeWorker(object):
self.build_pids = {}
self.build_pipes = {}
+ signal.signal(signal.SIGTERM, self.sigterm_exception)
+
+ def sigterm_exception(self, signum, stackframe):
+ bb.warn("Worker recieved SIGTERM, shutting down...")
+ self.handle_finishnow(None)
+ signal.signal(signal.SIGTERM, signal.SIG_DFL)
+ os.kill(os.getpid(), signal.SIGTERM)
+
def serve(self):
while True:
(ready, _, _) = select.select([self.input] + [i.input for i in self.build_pipes.values()], [] , [], 1)