Hallo,
folgendes Problem: Ich würde gern ein Python-Tool, das über das "socket"-modul Netwerkverbindungen entgegennimmt und verarbeitet, als Dienst (aka Service unter MS-Windows) laufen lassen.
Da als Server-Betriebssystem sowohl Linux als auch Windows zum Einsatz kommen soll habe ich folgende Probleme:
- Kann man so etwas os-independent in Python machen ( also ohne Plattformspezifische Module ) ?
- Wie kann ich sicherstellen das der Dienst neu gestartet wird wenn er einmal per unhandeled Exception auf die Backen fallen sollte ?
- Wie kann man dem Python-Interpreter sagen das er mit minimaler Prio laufen soll um wenig Resourcen zu fressen und automatisch nach dem Booten gestartet wird ?
Fragen über Fragen. Vielen Dank für jede Hilfe im Voraus.
Bernd
Python Serverdienst unter Windows und Linux
- DatenMetzgerX
- User
- Beiträge: 398
- Registriert: Freitag 28. April 2006, 06:28
- Wohnort: Zürich Seebach (CH)
Bei Windows kannst du das in den Dienst Einstellungen vornehmen, Linux k.Abernd_Aachen hat geschrieben:Hallo,
- Wie kann ich sicherstellen das der Dienst neu gestartet wird wenn er einmal per unhandeled Exception auf die Backen fallen sollte ?
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Unter Linux:
Fuers automatische starten und immer wieder neu starten solltest du dich mal mit Runlevels und der /etc/inittab beschaeftigen. Das ist aber distributionsabhaengig. Hier eine kleine Einfuehrung:
http://rowa.giso.de/german/runlevel.html
Bzgl. Prioritaet:
Damit bliebe das eigentliche Python-Script platformunabhaenging. Dafuer ist das "installieren" aufwaendiger.
EDIT:
Noch mehr infos zu inittab und zum Startvorgang allgemein findet man hier:
http://www.linuxfibel.de/booten.htm
Und dann gibt's natuerlich noch die Manpage von inittab.
Fuers automatische starten und immer wieder neu starten solltest du dich mal mit Runlevels und der /etc/inittab beschaeftigen. Das ist aber distributionsabhaengig. Hier eine kleine Einfuehrung:
http://rowa.giso.de/german/runlevel.html
Bzgl. Prioritaet:
Code: Alles auswählen
nice -n19 python deinprogramm.py
EDIT:
Noch mehr infos zu inittab und zum Startvorgang allgemein findet man hier:
http://www.linuxfibel.de/booten.htm
Und dann gibt's natuerlich noch die Manpage von inittab.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Jein. In Linux geht das auch so (python skriptname & und schon verschwindet dein programm im Hintergrund. Dann das durch die Init-Prozesse ausführen lassen und there you go!), unter Windows ist py2exe afair nötig.bernd_Aachen hat geschrieben:- Kann man so etwas os-independent in Python machen ( also ohne Plattformspezifische Module ) ?
Die Exception handlen (oder per atexit Tricks machen)? Ggf. ein Shell-Skript drumrum schreiben?bernd_Aachen hat geschrieben:- Wie kann ich sicherstellen das der Dienst neu gestartet wird wenn er einmal per unhandeled Exception auf die Backen fallen sollte ?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice