[FIX] watch parent when run in evented mode

bzr revid: chs@openerp.com-20130610160711-xvnmonm59al7e89l
This commit is contained in:
Christophe Simonis 2013-06-10 18:07:11 +02:00
parent 9154863575
commit 3b36a3ea12
1 changed files with 14 additions and 0 deletions

View File

@ -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