#!/usr/bin/python """ Virt-factory backend code. Copyright 2006, Red Hat, Inc Michael DeHaan Scott Seago Adrian Likins 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)