From 4e8a0873a7bcb346992cad6512d865f278373ce9 Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Wed, 13 May 2015 18:05:42 +0200 Subject: [PATCH] Handle sigchld, so we can run governor and postgres inside docker safely --- governor.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/governor.py b/governor.py index 39e19685..86404280 100755 --- a/governor.py +++ b/governor.py @@ -16,6 +16,17 @@ def sigterm_handler(signo, stack_frame): sys.exit() +# handle SIGCHILD, since we are the equivalent of the INIT process +def sigchld_handler(signo, stack_frame): + try: + while True: + ret = os.waitpid(-1, os.WNOHANG) + if ret == (0, 0): + break + except OSError: + pass + + class Governor: def __init__(self, config): @@ -78,4 +89,5 @@ def main(): if __name__ == '__main__': logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s', level=logging.INFO) signal.signal(signal.SIGTERM, sigterm_handler) + signal.signal(signal.SIGCHLD, sigchld_handler) main()