Skip to content

Instantly share code, notes, and snippets.

@maliubiao
Last active December 22, 2015 03:09
Show Gist options
  • Save maliubiao/6408717 to your computer and use it in GitHub Desktop.
Save maliubiao/6408717 to your computer and use it in GitHub Desktop.
create a daemon process, run program in the background.
#! /usr/bin/env python
import os
import sys
if __name__ == "__main__":
if len(sys.argv) < 2:
print("usage: daemon.py cmdline")
exit()
logname = "-".join(sys.argv[1:]).replace("/", "-")
print "ok: /tmp/%s.stdin, stdout, stdout" % logname
progname = sys.argv[1]
os.close(0)
os.close(1)
os.close(2)
stdin = open("/tmp/%s.stdin" % logname, "w+")
stdout = open("/tmp/%s.stdout" % logname, "w+")
stderr = open("/tmp/%s.stderr" % logname, "w+")
status = None
try:
status = os.fork()
except OSError as e:
print(e)
if status == 0:
os.setsid()
status2 = None
try:
status2 = os.fork()
except OSError as e:
print(e)
if status2 != 0:
exit()
else:
exit()
status3 = None
try:
status3 = os.fork()
except OSError as e:
print(e)
if status3 == 0:
try:
os.execvp(sys.argv[1], sys.argv[1:])
except OSError as e:
print(e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment