Python Dienst startet nicht (automatisch)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Programmierer
User
Beiträge: 3
Registriert: Dienstag 19. Mai 2009, 11:50

Hallo zusammen,

ich programmiere seit einigen Monaten Python (2.5.1) auf ausschließlich Windowsrechnern und lese schon länger hier im Forum mit. Und schon oft hat mir ein Beitrag auch weitergeholfen. Allerdings komme ich momentan mit einen Problem nicht weiter und habe auch (noch) nichts gefunden, was mir bis jetzt weitergeholfen hat.

Ich benötige einen Dienst auf dem Rechner (XP mit SP4), der täglich in der Nacht neugestartet wird. Dazu habe ich einen Dienst mit Python 2.5.1 geschrieben, der, wenn er denn gestartet ist, einwandfrei funktioniert. Nun das Problem: Der Dienst startet leider nur manchmal. Wenn er nicht automatisch gestartet wurde, läßt er sich problemlos (über Einstelleungen -> Systemsteuerung -> Verwaltung -> Dienste) händisch starten. Der Starttyp ist "automatisch", unter Eigenschaften -> Wiederherstellen steht bei allen Fehlschlägen "Dienst neu starten" und es sind keine Abhängigkeiten vorhanden. Wenn ich den "Dienst.py" über IDLE mit F5 starte, funktioniert alles einwandfrei, auch das starten. Der "Dienst.py" verfügt u.a. über die Funktionen "Dienst installieren", "Dienst starten", "Dienst beenden" und "Dienst entfernen".

Als erstes habe diesen "Dienst.py" dann in den Autostartordner geschoben, in der Hoffnung, dass er dann beim Neustart des Rechners gestartet wird. Aber so läßt sich der Dienst allerdings nur installieren und nicht starten. Es kommt die Fehlermeldung "Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung".

Meine nächste Idee war dann, dass ich mit Hilfe von time.sleep(5) 5 Sekunden warte, nachdem der Dienst erfolgreich installiert wurde, und dann erst den Dienst starte. Leider ergebnislos. Um den Dienst nicht jedesmal über die Systemsteuerung entfernen zu müssen, habe ich ein separates Pythonscript geschrieben, welches den Dienst nur entfernen soll. Wenn ich dieses Script mit einem Doppelklick ausführe, wird der Dienst immer korrekt entfernt. Und auch das installieren klappt ja.

Da das Starten bis jetzt immer noch nicht sicher und zuverlässig passiert, habe ich diesen Dienst mit py2exe zu einer ausführbaren Datei kompiliert, mit dem Ergebnis, dass sich der Dienst installieren aber nicht starten läßt.

Ich weis leider nicht, warum es über IDLE geht und wenn ich einen Doppelklick auf den "Dienst.py" mache, es nicht geht. Hat jemand eine Idee, woran das liegen könnte?

Vielen Dank im Voraus.

Viele Grüße
Programmierer
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Hast Du das schon gelesen?
MfG
HWK
Programmierer
User
Beiträge: 3
Registriert: Dienstag 19. Mai 2009, 11:50

Hallo HWK,

vielen Dank für deinen Hinweis. Den empfohlenen Link habe ich auch schon mehrfach aufgerufen. Ich verwende keine Netzlaufwerke und habe mich auch sonst sehr stark an gerolds Beispielprojekt gehalten. Trotzdem das Problem, dass der Dienst manchmal nicht startet.

Gruß
Programmierer
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Ohne Code (möglichst auf das Wesentliche gekürzt) wird sich da wahrscheinlich nicht viel sagen lassen.
MfG
HWK
Programmierer
User
Beiträge: 3
Registriert: Dienstag 19. Mai 2009, 11:50

Hallo HWK,

ich brauchte hier schnell eine Lösung und habe daher das Programm zu einem normalen Pythonscript umgeschrieben und in den Autostartordner kopiert. So läuft das Programm zwar im "Vordergrund", aber es wird automatisch gestartet. Das ist zwar eine unschöne Lösung, aber sie funktioniert.

Vielen Dank für deine Mühe.

Gruß
Programmierer
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Vielleicht ist das trotzdem noch interessant.
MfG
HWK
Antworten