MCPcopy
hub / github.com/pyload/pyload / deamon

Function deamon

pyLoadCore.py:630–666  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

628
629
630def deamon():
631 try:
632 pid = os.fork()
633 if pid > 0:
634 sys.exit(0)
635 except OSError, e:
636 print >> sys.stderr, "fork #1 failed: %d (%s)" % (e.errno, e.strerror)
637 sys.exit(1)
638
639 # decouple from parent environment
640 os.setsid()
641 os.umask(0)
642
643 # do second fork
644 try:
645 pid = os.fork()
646 if pid > 0:
647 # exit from second parent, print eventual PID before
648 print "Daemon PID %d" % pid
649 sys.exit(0)
650 except OSError, e:
651 print >> sys.stderr, "fork #2 failed: %d (%s)" % (e.errno, e.strerror)
652 sys.exit(1)
653
654 # Iterate through and close some file descriptors.
655 for fd in range(0, 3):
656 try:
657 os.close(fd)
658 except OSError: # ERROR, fd wasn't open to begin with (ignored)
659 pass
660
661 os.open(os.devnull, os.O_RDWR) # standard input (0)
662 os.dup2(0, 1) # standard output (1)
663 os.dup2(0, 2)
664
665 pyload_core = Core()
666 pyload_core.start()
667
668
669def main():

Callers 1

mainFunction · 0.85

Calls 5

startMethod · 0.95
CoreClass · 0.85
exitMethod · 0.45
closeMethod · 0.45
openMethod · 0.45

Tested by

no test coverage detected