Signalverarbeitung in Python-Daemon

8

Ich habe python-daemon installiert und nun versuche ich, die Signalverarbeitung richtig zu machen. Mein Code:

%Vor%

Wenn ich den Code starte, funktioniert alles wie erwartet: Der Text pythonDaemon läuft wird alle 5 Sekunden in /var/log/syslog geschrieben. Aber wenn ich den Daemon mit kill -TERM *PID* beenden möchte, wird der Daemon beendet, aber der Text pythonDaemon STOP fehlt in syslog.

Was mache ich falsch?

NB: Ich arbeite nicht mit from daemon import runner hier, weil das einen Fehler verursacht (sieht so aus, als ob ich eine ältere Version von lockfile brauche) und ich werde das nicht beheben, außer es ist die einzige Möglichkeit das Signal zu bekommen -Handeln nach rechts.

    
Ocaso Protal 18.01.2014, 18:53
quelle

1 Antwort

8

Ihr Code sieht gut aus, außer dass der Signalhandler nicht aufgerufen wird, weil er die falsche Signatur hat. Mach es so:

%Vor%

Zitieren der Dokumente ( signal.signal () ):

  

Der Handler wird mit zwei Argumenten aufgerufen: der Signalnummer und dem aktuellen Stack-Frame

    
grebneke 18.01.2014, 22:24
quelle