import os, sys, time # Main loop def main(): # Drop privs. os.setgid(1000) # Replace with desired GID os.setuid(1000) # Replace with desired UID time.sleep(10) sys.exit(0) if (not os.fork()): os.setsid() # Become session leader pid = os.fork() if (pid): # Parent, write PID file fp = open('/var/run/my-daemon.pid', 'w') fp.write(str(pid)) fp.flush() # Forcibly sync disk os.fsync(fp.fileno()) fp.close() os._exit(0) else: # Child, call main main() else: # Parent os._exit(0)