diff options
-rwxr-xr-x | zuul/cmd/executor.py | 7 | ||||
-rwxr-xr-x | zuul/cmd/merger.py | 7 | ||||
-rwxr-xr-x | zuul/cmd/scheduler.py | 7 |
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() |