#!/usr/bin/python """ Copyright 2007, Red Hat, Inc see AUTHORS This software may be freely redistributed under the terms of the GNU general public license. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. """ import os import string import sys import traceback # this is kind of handy, so keep it around for now # but we really need to fix out server side logging and error # reporting so we don't need it def trace_me(): x = traceback.extract_stack() bar = string.join(traceback.format_list(x)) return bar def daemonize(pidfile=None): """ Daemonize this process with the UNIX double-fork trick. Writes the new PID to the provided file name if not None. """ print pidfile pid = os.fork() if pid > 0: sys.exit(0) os.setsid() os.umask(0) pid = os.fork() if pid > 0: if pidfile is not None: open(pidfile, "w").write(str(pid)) sys.exit(0)