Python daemon fork()して親プロセスは終了。 setsid()で制御端末を切り離す。 fork()して親プロセスは終了。この時点で孫プロセスの親はinitになり、ゾンビを生じなくなる。 プロセスIDをファイルに書く。 ルートディレクトリにcdする。 umask(0)してファイル作成モードをリセットする。 stdin, stdout, stderrのファイル記述子を閉じる。 import os import sys def daemonize(pidfile, daemonfunc, *args): try: pid = os.fork() if (pid > 0): sys.exit(0) except OSError: print >>sys.stderr, 'daemonize: fork #1 failed.' sys.exit(1) try: os.se