python产生守护进程的典型代码,两次fork,两次exit

1、代码示例:

import os
import time

def demo():
	try:
		if os.fork() > 0: 
			os._exit(0)
	except OSError, error:
		print 'fork #1 failed: %d (%s)' % (error.errno, error.strerror)
		os._exit(1)

	os.chdir('/')
	os.setsid()
	os.umask(0)

	try:
		if os.fork():
			os._exit(0)
	except OSError, error:
		print 'fork #2 failed: %d (%s)' % (error.errno, error.strerror)
		os._exit(1)

	test()
        
def test():
	f = open('/home/tomcat/py/log/demo.log', 'w')
	while True:
		f.write(time.ctime()+'\n')
		f.flush()
		time.sleep(2)
	f.close()

if __name__ == '__main__':
	demo()

  

 

  2、解释:

 

posted on 2015-04-15 10:53  充实自己  阅读(309)  评论(0编辑  收藏  举报