
Ich habe einen Dienst, der nur gestartet werden mussNACHein anderer Dienst. Gibt es eine Möglichkeit, den Dienst so zu konfigurieren, dass er erst gestartet wird, wenn ein anderer Dienst mit dem Starten fertig ist?
Natürlich könnte ich einen verzögerten Start verwenden oder ein Batch-Skript schreiben, um dies zu tun, aber das sind beides chaotische/vorübergehende Lösungen. Also habe ich mich gefragt, ob ich das irgendwie planen kann?
Ist das möglich?
Antwort1
Meiner Erfahrung nach besteht die beste Möglichkeit zum Erstellen von Dienstabhängigkeiten, ohne in der Registrierung herumzuwühlen (was weder sicher noch zuverlässig ist und sich nicht leicht per Skript == wiederholbar ausführen lässt), in der Verwendung von SC.exe – dem Dienststeuerungsprogramm, das in jeder Windows-Version seit Windows 2003 enthalten ist.
Sie können ein Befehlsfenster öffnen und Folgendes eingeben, sc
um die vollständige Hilfe zu erhalten. Der Kerngedanke ist jedoch:
sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "netbios"
Erstellt einen neuen Dienst mit dem Namen „newservice“, verweist auf seinen Pfad, lässt ihn automatisch starten und macht ihn vom NetBIOS-Dienst abhängig.
Mehr über SC erfahrenHier.
Antwort2
Sie müssen den Registrierungseditor verwenden (soweit ich weiß), um den Dienst vom anderen Server abhängig zu machen. Suchen Sie denabhängigservice in HKLM\SYSTEM\CurrentControlSet\services
und fügen Sie einen REG_MULTI_SZ
Wert namens hinzu DependOnService
. Geben Sie den Dienstnamen (nicht den Anzeigenamen, sondern denselben Namen wie der Registrierungsschlüssel) als Wert ein.
Wenn Sie jetzt neu starten, startet Windows Ihren abhängigen Dienst erst, nachdem der Dienst gestartet wurde, von dem Sie ihn abhängig gemacht haben. Wenn der Dienst, von dem er abhängig ist, nicht gestartet werden kann, wird Ihr abhängiger Dienst ebenfalls nicht gestartet.
Antwort3
Solange der Dienst ordnungsgemäß im Webcontainer bereitgestellt ist, wird der Dienst beim Starten von Tomcat automatisch gestartet, genau wie jede andere Webanwendung. Bitte beachten Sie, dass ein im Webcontainer bereitgestellter Webdienst nichts anderes als ein in ein Servlet eingebundener Dienst ist, der wie jedes andere Servlet nach SOAP-Anfragen über HTTP sucht.
Antwort4
Sie können den zweiten Dienst vom ersten Dienst abhängig machen und dann den zweiten Dienst anstelle des ersten Dienstes starten. Windows stellt sicher, dass der erste Dienst gestartet wird, bevor der zweite Dienst gestartet wird.