parameters: (self)
docstring: do the UNIX double-fork magic, see Stevens' "Advanced
          Programming in the UNIX Environment" for details (ISBN 0201563177)
          http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC16
docstring_summary: do the UNIX double-fork magic, see Stevens' "Advanced
          Programming in the UNIX Environment" for details (ISBN 0201563177)
          http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC16
docstring_tokens: do the UNIX double - fork magic see Stevens Advanced Programming in the UNIX Environment for details ( ISBN 0201563177 ) http : // www . erlenstar . demon . co . uk / unix / faq_2 . html#SEC16
function: def daemonize(self):
          """
          do the UNIX double-fork magic, see Stevens' "Advanced
          Programming in the UNIX Environment" for details (ISBN 0201563177)
          http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC16
          """
          try:
              pid = os.fork()
              if pid > 0:
                  # exit first parent
                  sys.exit(0)
          except OSError, e:
              sys.stderr.write("fork #1 failed: %d (%s)\n" % (e.errno, e.strerror))
              sys.exit(1)
  
          # decouple from parent environment
          os.chdir("/")
          os.setsid()
          os.umask(0)
  
          # do second fork
          try:
              pid = os.fork()
              if pid > 0:
                  # exit from second parent
                  sys.exit(0)
          except OSError, e:
              sys.stderr.write("fork #2 failed: %d (%s)\n" % (e.errno, e.strerror))
              sys.exit(1)
  
          # redirect standard file descriptors
          sys.stdout.flush()
          sys.stderr.flush()
          si = file(self.stdin, 'r')
          so = file(self.stdout, 'a+')
          se = file(self.stderr, 'a+', 0)
          os.dup2(si.fileno(), sys.stdin.fileno())
          os.dup2(so.fileno(), sys.stdout.fileno())
          os.dup2(se.fileno(), sys.stderr.fileno())
  
          # write pidfile
          atexit.register(self.delpid)
          pid = str(os.getpid())
          file(self.pidfile,'w+').write("%s\n" % pid)
function_tokens: def daemonize ( self ) : try : pid = os . fork ( ) if pid > 0 : # exit first parent sys . exit ( 0 ) except OSError , e : sys . stderr . write ( "fork #1 failed: %d (%s)\n" % ( e . errno , e . strerror ) ) sys . exit ( 1 ) # decouple from parent environment os . chdir ( "/" ) os . setsid ( ) os . umask ( 0 ) # do second fork try : pid = os . fork ( ) if pid > 0 : # exit from second parent sys . exit ( 0 ) except OSError , e : sys . stderr . write ( "fork #2 failed: %d (%s)\n" % ( e . errno , e . strerror ) ) sys . exit ( 1 ) # redirect standard file descriptors sys . stdout . flush ( ) sys . stderr . flush ( ) si = file ( self . stdin , 'r' ) so = file ( self . stdout , 'a+' ) se = file ( self . stderr , 'a+' , 0 ) os . dup2 ( si . fileno ( ) , sys . stdin . fileno ( ) ) os . dup2 ( so . fileno ( ) , sys . stdout . fileno ( ) ) os . dup2 ( se . fileno ( ) , sys . stderr . fileno ( ) ) # write pidfile atexit . register ( self . delpid ) pid = str ( os . getpid ( ) ) file ( self . pidfile , 'w+' ) . write ( "%s\n" % pid )