[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'])
|
os.unlink(config['pidfile'])
|
||||||
sys.exit(0)
|
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):
|
def main(args):
|
||||||
check_root_user()
|
check_root_user()
|
||||||
openerp.tools.config.parse_config(args)
|
openerp.tools.config.parse_config(args)
|
||||||
|
@ -264,6 +276,8 @@ def main(args):
|
||||||
openerp.service.start_services()
|
openerp.service.start_services()
|
||||||
else:
|
else:
|
||||||
config['xmlrpc_port'] = config['longpolling_port']
|
config['xmlrpc_port'] = config['longpolling_port']
|
||||||
|
import gevent
|
||||||
|
gevent.spawn(watch_parent)
|
||||||
openerp.service.start_services()
|
openerp.service.start_services()
|
||||||
|
|
||||||
rc = 0
|
rc = 0
|
||||||
|
|
Loading…
Reference in New Issue