Seite 1 von 1

Python Serverdienst unter Windows und Linux

Verfasst: Mittwoch 3. Mai 2006, 14:13
von bernd_Aachen
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

Re: Python Serverdienst unter Windows und Linux

Verfasst: Mittwoch 3. Mai 2006, 19:58
von DatenMetzgerX
bernd_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 ?
Bei Windows kannst du das in den Dienst Einstellungen vornehmen, Linux k.A

Re: Python Serverdienst unter Windows und Linux

Verfasst: Mittwoch 3. Mai 2006, 20:26
von Rebecca
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:

Code: Alles auswählen

nice -n19 python deinprogramm.py
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.

Re: Python Serverdienst unter Windows und Linux

Verfasst: Mittwoch 3. Mai 2006, 20:41
von Leonidas
bernd_Aachen hat geschrieben:- Kann man so etwas os-independent in Python machen ( also ohne Plattformspezifische Module ) ?
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:- Wie kann ich sicherstellen das der Dienst neu gestartet wird wenn er einmal per unhandeled Exception auf die Backen fallen sollte ?
Die Exception handlen (oder per atexit Tricks machen)? Ggf. ein Shell-Skript drumrum schreiben?