2016-10-10 5 views
-1

Ich habe einen Daemon-Prozess mit diesen Lib erstellt linktosite Ich verbinde durch ssh und starten Sie den Prozess mit Python myDaemon.py starten.Python-Daemon stirbt

Ich benutze eine Schleife innerhalb der Daemon-Methode, um meine Aufgaben zu erledigen. Aber sobald ich mich auslogge, stoppt der Dämon (stirbt).

Ist dies passiert, weil ich die PID-Datei auf meinem Benutzer und nicht im Stammordner speichern?

Jeder eine Idee. Ich kann Code aber jetzt auf Thread-Erstellung liefern. (+ 3h)

+1

Haben Sie eine 'detach' Option zu sehen passieren? Macht es einen Unterschied, wenn Sie 'nohup python myDaemon.py starten &' (es sollte nicht, aber wenn es dann tut, ist das Problem da). – RemcoGerlich

+0

Sind Sie sicher, dass der Host grundsätzlich erlaubt, dass Hintergrundprozesse nach dem Abmelden ausgeführt werden? Einige Systeme sind so konfiguriert, dass alle Prozesse beendet werden, sobald die interaktive Sitzung beendet ist. (Versuchen Sie zu laufen, z. B. 'nohup cat &', logout, loggen Sie sich ein und überprüfen Sie, ob 'cat' immer noch in' ps' auftritt.) – Phillip

+0

weder mit nohop noch ohne den Prozess wird nicht mit ps angezeigt./e Was ist das & für? – Offset

Antwort

-1

Verwenden Sie die Shebang-Zeile in Ihrem python Skript. Machen Sie es mit dem Befehl ausführbar. chmod + x test.py Verwenden Sie kein Auflegen, um ein Programm im Hintergrund auszuführen, selbst wenn Sie Ihr Terminal schließen.

nohup /path/to/test.py & 

Vergessen Sie nicht & zu verwenden, um es im Hintergrund zu setzen.

Um den Prozess wieder verwenden in Terminal,

ps ax | grep test.py 

Answer

Another way would be actually make it an upstart script

+0

Hat immer noch das gleiche Verhalten. Prozess war sichtbar aber nach dem Logout -> Login ist es weg – Offset