[Python-de] Python Deamon erstellen (start stop restart)

Bertram Scharpf lists at bertram-scharpf.de
Don Nov 25 13:00:19 CET 2004


Hallo,

Am Donnerstag, 25. Nov 2004, 10:14:08 +0100 schrieb Christian Klinger:
> hat jemand eine Idee oder einen Beispielcode wie man einen "Deamon" 
> erstellen kann. Etwas in der
> Art von (bsp. Suses rcsendmail start stop restart) mit PID -Nummer oder so.

Ungetestet:

    def daemonisier():
        pid = os.fork()
        if pid < 0:
            raise SomeException()
        elif pid > 0:
            print pid
            sys.exit()
        else:
            os.setsid()

Zu empfehlen ist noch ein

    os.chdir( '/')

falls ein anderer Prozeß das laufende Verzeichnis unmounten
möchte, sowie

    null = os.open( '/dev/null', os.O_RDWR)
    os.dup2( null, sys.stdin.fileno())
    os.dup2( null, sys.stdout.fileno())
    os.dup2( null, sys.stderr.fileno())
    os.close( null)

oder alternativ die Umleitung der Ausgabe in eine Logdatei.

Gruß

Bertram

-- 
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de