Python Serverdienst unter Windows und Linux

Probleme bei der Installation?
Antworten
bernd_Aachen
User
Beiträge: 5
Registriert: Sonntag 12. März 2006, 09:05
Wohnort: Aachen

Mittwoch 3. Mai 2006, 14:13

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
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Mittwoch 3. Mai 2006, 19:58

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
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Mittwoch 3. Mai 2006, 20:26

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.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 3. Mai 2006, 20:41

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?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten