建自己的程序放到后台执行?
seai 2013-01-18 11:18:36 找到一段实现代码,不过看的不太明白,请大牛解释一下下面代码是怎样建进程放入后台执行的?
def daemonize(self, stdin = '/dev/null', stdout = '/dev/null', stderr = '/dev/null'):
try:
pid = os.fork()
if pid > 0:
sys.exit(0)
except OSError, e:
sys.exit(4)
os.chdir('/')
os.umask(0)
os.setsid()
try:
pid = os.fork()
if pid > 0:
sys.exit(0)
except OSError, e:
sys.exit(4)
for f in sys.stdout, sys.stderr: f.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())