From 3b36a3ea128008193e6c7dc24330a4e35cd83bd8 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 10 Jun 2013 18:07:11 +0200 Subject: [PATCH] [FIX] watch parent when run in evented mode bzr revid: chs@openerp.com-20130610160711-xvnmonm59al7e89l --- openerp/cli/server.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/openerp/cli/server.py b/openerp/cli/server.py index 3d269a3c458..fc1bf61b617 100644 --- a/openerp/cli/server.py +++ b/openerp/cli/server.py @@ -221,6 +221,18 @@ def quit_on_signals(): os.unlink(config['pidfile']) sys.exit(0) +def watch_parent(beat=4): + import gevent + ppid = os.getppid() + while True: + if ppid != os.getppid(): + pid = os.getpid() + _logger.info("LongPolling (%s) Parent changed", pid) + # suicide !! + os.kill(pid, signal.SIGTERM) + return + gevent.sleep(beat) + def main(args): check_root_user() openerp.tools.config.parse_config(args) @@ -264,6 +276,8 @@ def main(args): openerp.service.start_services() else: config['xmlrpc_port'] = config['longpolling_port'] + import gevent + gevent.spawn(watch_parent) openerp.service.start_services() rc = 0