summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-01-16 23:58:42 +0000
committerGerrit Code Review <review@openstack.org>2018-01-16 23:58:43 +0000
commite2c4263d6f9073e263d765ed7eee681311b9bc54 (patch)
tree795e1712e5279e45138dab79231fdb7aa04dd235
parentde8d19a96a6646d3d0531f45a09ea8cd9da6a1ab (diff)
parentfd7101b3b5065d009d3241470fca7069f6ec52f6 (diff)
downloadzuul-e2c4263d6f9073e263d765ed7eee681311b9bc54.tar.gz
Merge "Handle sigterm in nodaemon mode" into feature/zuulv3
-rwxr-xr-xzuul/cmd/executor.py7
-rwxr-xr-xzuul/cmd/merger.py7
-rwxr-xr-xzuul/cmd/scheduler.py7
3 files changed, 12 insertions, 9 deletions
diff --git a/zuul/cmd/executor.py b/zuul/cmd/executor.py
index ad7aaa837..aa7a106b5 100755
--- a/zuul/cmd/executor.py
+++ b/zuul/cmd/executor.py
@@ -49,9 +49,10 @@ class Executor(zuul.cmd.ZuulDaemonApp):
if self.args.command:
self.args.nodaemon = True
- def exit_handler(self):
+ def exit_handler(self, signum, frame):
self.executor.stop()
self.executor.join()
+ sys.exit(0)
def start_log_streamer(self):
pipe_read, pipe_write = os.pipe()
@@ -111,13 +112,13 @@ class Executor(zuul.cmd.ZuulDaemonApp):
signal.signal(signal.SIGUSR2, zuul.cmd.stack_dump_handler)
if self.args.nodaemon:
+ signal.signal(signal.SIGTERM, self.exit_handler)
while True:
try:
signal.pause()
except KeyboardInterrupt:
print("Ctrl + C: asking executor to exit nicely...\n")
- self.exit_handler()
- sys.exit(0)
+ self.exit_handler(signal.SIGINT, None)
else:
self.executor.join()
diff --git a/zuul/cmd/merger.py b/zuul/cmd/merger.py
index 7db1beeaf..2916a0b3c 100755
--- a/zuul/cmd/merger.py
+++ b/zuul/cmd/merger.py
@@ -42,9 +42,10 @@ class Merger(zuul.cmd.ZuulDaemonApp):
if self.args.command:
self.args.nodaemon = True
- def exit_handler(self):
+ def exit_handler(self, signum, frame):
self.merger.stop()
self.merger.join()
+ sys.exit(0)
def run(self):
# See comment at top of file about zuul imports
@@ -64,13 +65,13 @@ class Merger(zuul.cmd.ZuulDaemonApp):
signal.signal(signal.SIGUSR2, zuul.cmd.stack_dump_handler)
if self.args.nodaemon:
+ signal.signal(signal.SIGTERM, self.exit_handler)
while True:
try:
signal.pause()
except KeyboardInterrupt:
print("Ctrl + C: asking merger to exit nicely...\n")
- self.exit_handler()
- sys.exit(0)
+ self.exit_handler(signal.SIGINT, None)
else:
self.merger.join()
diff --git a/zuul/cmd/scheduler.py b/zuul/cmd/scheduler.py
index 7722d6e9c..c3bfa5d86 100755
--- a/zuul/cmd/scheduler.py
+++ b/zuul/cmd/scheduler.py
@@ -61,10 +61,11 @@ class Scheduler(zuul.cmd.ZuulDaemonApp):
self.log.exception("Reconfiguration failed:")
signal.signal(signal.SIGHUP, self.reconfigure_handler)
- def exit_handler(self):
+ def exit_handler(self, signum, frame):
self.sched.exit()
self.sched.join()
self.stop_gear_server()
+ sys.exit(0)
def term_handler(self, signum, frame):
self.stop_gear_server()
@@ -180,13 +181,13 @@ class Scheduler(zuul.cmd.ZuulDaemonApp):
signal.signal(signal.SIGHUP, self.reconfigure_handler)
if self.args.nodaemon:
+ signal.signal(signal.SIGTERM, self.exit_handler)
while True:
try:
signal.pause()
except KeyboardInterrupt:
print("Ctrl + C: asking scheduler to exit nicely...\n")
- self.exit_handler()
- sys.exit(0)
+ self.exit_handler(signal.SIGINT, None)
else:
self.sched.join()