[FIX] watch parent when run in evented mode
bzr revid: chs@openerp.com-20130610160711-xvnmonm59al7e89l
This commit is contained in:
parent
9154863575
commit
3b36a3ea12
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue