##// END OF EJS Templates
better flush iopub with AsyncResults...
better flush iopub with AsyncResults requesting metadata (e.g. ar.data or ar.stdout) will result in flushing iopub if the outputs are incomplete, so separate wait(0) need not be called. This also applies the workaround discussed in #2215

File last commit:

r7787:28b538a9
r8140:c0973b13
Show More
daemonize.py
26 lines | 833 B | text/x-python | PythonLexer
MinRK
scrub twisted/deferred references from launchers...
r4019 """daemonize function from twisted.scripts._twistd_unix."""
#-----------------------------------------------------------------------------
# Copyright (c) Twisted Matrix Laboratories.
# See Twisted's LICENSE for details.
# http://twistedmatrix.com/
#-----------------------------------------------------------------------------
import os, errno
def daemonize():
# See http://www.erlenstar.demon.co.uk/unix/faq_toc.html#TOC16
if os.fork(): # launch child and...
os._exit(0) # kill off parent
os.setsid()
if os.fork(): # launch child and...
os._exit(0) # kill off parent again.
null = os.open('/dev/null', os.O_RDWR)
for i in range(3):
try:
os.dup2(null, i)
Matthias BUSSONNIER
conform to pep 3110...
r7787 except OSError as e:
MinRK
scrub twisted/deferred references from launchers...
r4019 if e.errno != errno.EBADF:
raise
os.close(null)