Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Kann ein Dienst sich selber neu starten? (https://www.delphipraxis.net/173330-kann-ein-dienst-sich-selber-neu-starten.html)

Jumpy 18. Feb 2013 08:46

Kann ein Dienst sich selber neu starten?
 
Hallo,

ich habe einen Dienst, der manchmal (nicht reproduzierbar) einen Teil seiner Aufgaben nicht mehr erledigt, d.h. eine Komponente arbeitet dann nicht mehr. Ich kann das nicht abfangen, da ich nicht genau weiß, woher das kommt. Die Komponente kommuniziert asynchron per FTP mit einem anderen fremden Programm und bei irgendeiner Konstellation in diesem anderen Programm verabschiedet sich bei mir die FTP-Komponente. Vermute ich. Sie ist noch ansprechbar, es wird noch geloggt, es hängt sich nichts auf, aber die Kommunikation findet nicht mehr statt.
Erkenne ich diesen Zusatand im Log und starte den Diesnt per Hand neu, läuft wieder alles.

Da ich diesen Zustand (wenn auch leider nicht die Ursache, was ja besser wäre) auch im Programm erkennen könnte, wäre es ggf. eine Möglichkeit, dass sich der Dienst selber neu startet. Frage ist nur: Geht das? Wenn ja wie?

Klaus01 18. Feb 2013 09:13

AW: Kann ein Dienst sich selber neu starten?
 
Hallo,

würde es nicht ausreichen den ftp Thread neu zu starten?

Grüße
Klaus

Bummi 18. Feb 2013 09:42

AW: Kann ein Dienst sich selber neu starten?
 
Falls sie Lösung von Klaus nicht reichen sollte und Du das Problem nicht bei der Wurzel zu packen bekommst, kannst Du wenn Dein Dienst noch "lebt" diesen ein Programm starten lassen welcher den Dienst neu startet. Ansonsten einen anderen Dienst als "Watchdog" aufsetzen.

CCRDude 18. Feb 2013 12:27

AW: Kann ein Dienst sich selber neu starten?
 
Jenes andere Programm heißt im Idealfall Windows - wenn der Service mit ner Exception kracht (kann man ja krachen lassen) und das Error Handling im Service Manager entsprechend eingestellt ist, kann man den Service von diesem automatisch neustarten lassen (siehe die Failure Actions in den Eigenschaften des Services im Tab Recovery).

Jumpy 18. Feb 2013 15:30

AW: Kann ein Dienst sich selber neu starten?
 
Hallo,
und danke.

Klaus hat vermutlich recht. Nur weil ich als User den Dienst neu starten muss, um den Thread neu zu starten, muss das Programm das ja nicht auch so machen, es kommt ja hoffentlich direkt an den Thread.

Hab das mal entsprechend umgesetzt und schau mal was die nächste Woche so passiert.

Wenn das nix gibt, versuch ich mal die anderen Vorschläge und starte tatsächlich den Dienst neu.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz