Yes I wanted to avoid to do something too complex, anyway I'll just comment it well and add a link to the original code..
But this is now failing to me: def daemonize(stdin='/dev/null', stdout='/dev/null', stderr='/dev/null'): # Perform first fork. try: pid = os.fork() if pid > 0: sys.exit(0) # Exit first parent. except OSError as e: sys.stderr.write("fork #1 failed: (%d) %s\n" % (e.errno, e.strerror)) sys.exit(1) # Decouple from parent environment. os.chdir("/") os.umask(0) os.setsid() # Perform second fork. try: pid = os.fork() if pid > 0: sys.exit(0) # Exit second parent. except OSError, e: sys.stderr.write("fork #2 failed: (%d) %s\n" % (e.errno, e.strerror)) sys.exit(1) # The process is now daemonized, redirect standard file descriptors. sys.stdout.flush() sys.stderr.flush() si = file(stdin, 'r') so = file(stdout, 'a+') se = file(stderr, 'a+', 0) os.dup2(si.fileno(), sys.stdin.fileno()) os.dup2(so.fileno(), sys.stdout.fileno()) os.dup2(se.fileno(), sys.stderr.fileno()) if __name__ == '__main__': daemonize(stdout='sample_file', stderr='sample') print("hello world, now should be the child!") [andrea@andreacrotti experiments]$ python2 daemon.py Traceback (most recent call last): File "daemon.py", line 49, in <module> daemonize(stdout='sample_file', stderr='sample') File "daemon.py", line 41, in daemonize so = file(stdout, 'a+') IOError: [Errno 13] Permission denied: 'sample_file' The parent process can write to that file easily, but the child can't, why is it working for you and not for me though? (Running this on Linux with a non-root user) -- http://mail.python.org/mailman/listinfo/python-list