Ist es möglich, ein Python Script unter Linux als Daemon im hintergrund laufen zu lassen? .. Bzw. ein Script so zu schreiben, dass es sich selbt, wie z.B. der eggdrop Bot, in den Hintergrund läd?
Ich bastel da nämlich an einem MUC Bot, der in Python geschrieben ist. Allerdings muss ich den entweder immer in einem Screen aufrufen oder auf einer anderen tty Konsole und die dann eingeloggt lassen -.- Und das nervt mich auf dauer doch ein wenig ..
Python Scrypt als Daemon im Hintergrund?
xmpp:kromonos@user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
http://pypi.python.org/pypi/bda.daemon/1.1.1kromonos hat geschrieben:Ist es möglich, ein Python Script unter Linux als Daemon im hintergrund laufen zu lassen?
http://twistedmatrix.com/trac/browser/t ... ix.py#L156
Ciao,
dev
Danke für die antwort dev ..
Ich werds mir auch direkt mal angucken ^^
Ich werds mir auch direkt mal angucken ^^
xmpp:kromonos@user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
Oder auch http://code.activestate.com/recipes/66012/ , mit Erklärungen
Sehr schönDarii hat geschrieben:Oder auch http://code.activestate.com/recipes/66012/ , mit Erklärungen
Das hilft mir sehr gut weiter
xmpp:kromonos@user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
Du solltest die Kommentare beachten. Für einen einfachen Dienst benötigt man den doppelten Fork nicht, das Schließen der Standarddatenströme dagegen ist durchaus empfehlenswert, wird aber erst in den Kommentaren erwähnt.
Hi, ich möchte das Thema nochmal ausgraben, weil ich gerade etwas ähnliches machen möchte. Und zwar möchte ich ein Python Script schreiben, das als normaler Dienst unter Linux läuft, den man mit start, stop, restart usw steuern kann.
Ich weiß bisher nur, dass man dafür ein Script verwendet und das man ein Beispiel dafür unter /etc/init.d/skeleton findet. Ich bin aber noch nicht dahinter gekommen, wie man das Python Script entsprechend programmieren muss und wie man das Skeleton anpassen muss
Hat da jemand vielleicht sogar ein Beispiel?
Ich weiß bisher nur, dass man dafür ein Script verwendet und das man ein Beispiel dafür unter /etc/init.d/skeleton findet. Ich bin aber noch nicht dahinter gekommen, wie man das Python Script entsprechend programmieren muss und wie man das Skeleton anpassen muss
Hat da jemand vielleicht sogar ein Beispiel?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also unter Debian läuft das alles durch ``start-stop-daemon``, und da muss man optimalerweise eine PID-Datei schreiben, und auf ein paar Signale reagieren (SIGTERM, SIGHUP) und das ist eigentlich auch schon alles damit ein Daemon mit dem init-System zusammenspielt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Da ``start-stop-daemon`` ein Debian-spezifisches Tool ist, wird das wohl woanders leicht unterschiedlich sein (die grobe Essenz des SysV Init Systems bleibt natürlich die gleiche).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Genau, Grundgerüst ist quasi dasselbe (Skripte in /etc/init.d, symlinks unter rcX.d je nach Start-/Stoppriorität und runlevel), Unterschiede liegen dann im Detail:Ok, das heißt, dass das oben beschriebene System für Linux im allgemeinen gilt. Nur die Steuerung des start-stop-deamon ist Debian spezifisch
- SuSE/RedHat haben versucht, das zu standardisieren, daher unterliegt das Skript gewissen Konventionen im oberen Kommentarteil (Teil der LSB-Spec), wird aber inzwischen von den großen Distributionen und deren Dienstetools ebenfalls beachtet (siehe INIT INFO Sektion)
- SuSEnahe haben unter den rc-Ordnern getrennte Start-/Stoplinks, Debianabkömmlinge kennen nur einen Link und lösen das über die INIT INFO auf
- SuSE legt unter /usr/sbin symlinks zu den Skripten an (rcNameDesSkriptes), ist z.T. für frühe Dienste Pflicht (wegen Mountstatus des root-FS, weiß nicht mehr genau, was da war)
Ubuntu will mit upstart das SysV-Init-Modell ganz verlassen, nutzt es derzeit aber immernoch (innerhalb von upstart).