@@ -0,0 +1,2041 @@
+#!/usr/local/bin/python%0A#%0A# Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved.%0A# Copyright (c) 2006-2014 Sippy Software, Inc. All rights reserved.%0A#%0A# All rights reserved.%0A#%0A# Redistribution and use in source and binary forms, with or without modification,%0A# are permitted provided that the following conditions are met:%0A#%0A# 1. Redistributions of source code must retain the above copyright notice, this%0A# list of conditions and the following disclaimer.%0A#%0A# 2. Redistributions in binary form must reproduce the above copyright notice,%0A# this list of conditions and the following disclaimer in the documentation and/or%0A# other materials provided with the distribution.%0A#%0A# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS %22AS IS%22 AND%0A# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED%0A# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE%0A# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR%0A# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES%0A# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;%0A# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON%0A# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT%0A# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS%0A# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.%0A%0Aimport os, sys%0A%0Adef daemonize(logfile = None):%0A    # Fork once%0A    if os.fork() != 0:%0A        os._exit(0)%0A    # Create new session%0A    os.setsid()%0A    if os.fork() != 0:%0A        os._exit(0)%0A    os.chdir('/')%0A    fd = os.open('/dev/null', os.O_RDWR)%0A    os.dup2(fd, sys.__stdin__.fileno())%0A    if logfile != None:%0A        fake_stdout = file(logfile, 'a', 1)%0A        sys.stdout = fake_stdout%0A        sys.stderr = fake_stdout%0A        fd = fake_stdout.fileno()%0A    os.dup2(fd, sys.__stdout__.fileno())%0A    os.dup2(fd, sys.__stderr__.fileno())%0A    if logfile == None:%0A        os.close(fd)%0A

Add previously missing file.