From 5d5cca00417dc69b3f9212eb09f1e93d77f63e68 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 6 Jun 2013 14:37:33 +0200 Subject: First version, does not close correctly bzr revid: nicolas.vanhoren@openerp.com-20130606123733-j6d2lpcgrvxfa7yr --- openerp/cli/server.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'openerp/cli/server.py') diff --git a/openerp/cli/server.py b/openerp/cli/server.py index 2ee9e53b3ca..3d269a3c458 100644 --- a/openerp/cli/server.py +++ b/openerp/cli/server.py @@ -257,9 +257,13 @@ def main(args): setup_pid_file() # Some module register themselves when they are loaded so we need the # services to be running before loading any registry. - if config['workers']: - openerp.service.start_services_workers() + if not openerp.evented: + if config['workers']: + openerp.service.start_services_workers() + else: + openerp.service.start_services() else: + config['xmlrpc_port'] = config['longpolling_port'] openerp.service.start_services() rc = 0 -- cgit v1.2.3 From 3b36a3ea128008193e6c7dc24330a4e35cd83bd8 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 10 Jun 2013 18:07:11 +0200 Subject: [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(+) (limited to 'openerp/cli/server.py') 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 -- cgit v1.2.3