Dienste per Script starten?! Kann doch nicht wahr sein
Hallo Kollegen,
der Hersteller einer Programmsuite, die auf Backenddiensten, SQL-Server und Clients basiert, liefert seinen Kunden eine Batchdatei aus, um seine Applikationsdienste sicher, in der richtigen Reihenfolge und in der richtigen Zeit zu starten.
Seine Installationen verdrehen die Einstellungen der Dienste übrigens immer auf "Automatisch", was einem script-kontrollierten Start zuwider läuft.
Warum der Hersteller die Dienste nicht in eine bestimmte Abhängigkeit setzt (Dazu gibt es Funktion im Windows Services Manager) verstehe ich nicht. Man sagte mir, es ginge nicht.
Diese Dienste müssten der Reihe nach starten:
RabbitMQ
STP Usermanagement
LEXolution.DMS
STP Server 8005
STP QMDocConnector
STP GIS Service
STP beA Messageserver
STPP InsoPortal Connector
Wenn ich jetzt alle diese Dienste auf "Automatisch (Verzögert) setze und trage die Abhängigkeiten entsprechend ein vom ersten Dienst, der keine hat, bis zum letzten, der alle vorangehenden drin hat, dann müsste diese Kaskade doch auch entsprechend starten mit ausreichend Pausen zwischen den Dienstinstanzen, da jeder auf "Automatisch (Verzögert) steht und aufgrund der Abhängkeitsabfolge nur einer nach dem anderen starten kann.
Oder setzt man besser alle vorangehenden auf manuell und nur den letzten auf Automatik?
Sehe ich das richtig?
Danke für jeden konstruktiven Augenöffner.
Freundliche Grüße
Andreas
der Hersteller einer Programmsuite, die auf Backenddiensten, SQL-Server und Clients basiert, liefert seinen Kunden eine Batchdatei aus, um seine Applikationsdienste sicher, in der richtigen Reihenfolge und in der richtigen Zeit zu starten.
Seine Installationen verdrehen die Einstellungen der Dienste übrigens immer auf "Automatisch", was einem script-kontrollierten Start zuwider läuft.
Warum der Hersteller die Dienste nicht in eine bestimmte Abhängigkeit setzt (Dazu gibt es Funktion im Windows Services Manager) verstehe ich nicht. Man sagte mir, es ginge nicht.
Diese Dienste müssten der Reihe nach starten:
RabbitMQ
STP Usermanagement
LEXolution.DMS
STP Server 8005
STP QMDocConnector
STP GIS Service
STP beA Messageserver
STPP InsoPortal Connector
Wenn ich jetzt alle diese Dienste auf "Automatisch (Verzögert) setze und trage die Abhängigkeiten entsprechend ein vom ersten Dienst, der keine hat, bis zum letzten, der alle vorangehenden drin hat, dann müsste diese Kaskade doch auch entsprechend starten mit ausreichend Pausen zwischen den Dienstinstanzen, da jeder auf "Automatisch (Verzögert) steht und aufgrund der Abhängkeitsabfolge nur einer nach dem anderen starten kann.
Oder setzt man besser alle vorangehenden auf manuell und nur den letzten auf Automatik?
Sehe ich das richtig?
Danke für jeden konstruktiven Augenöffner.
Freundliche Grüße
Andreas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 672738
Url: https://administrator.de/forum/dienste-per-script-starten-kann-doch-nicht-wahr-sein-672738.html
Ausgedruckt am: 05.05.2025 um 15:05 Uhr
7 Kommentare
Neuester Kommentar
Programmieren können oder nicht, das ist hier die Frage 
Der HErsteller könnte auch coden wenn Dienst A startet und dann B das B checkt ob A läuft und dann erst führt sich der Programmteil richtig aus.... gleiches gilt für Dienst C usw...
Oder eine Kommunikationseben zwischen den Diensten.
Aber ist heute zuviel verlangt... KI coding gibt das einfach nicht her
Der HErsteller könnte auch coden wenn Dienst A startet und dann B das B checkt ob A läuft und dann erst führt sich der Programmteil richtig aus.... gleiches gilt für Dienst C usw...
Oder eine Kommunikationseben zwischen den Diensten.
Aber ist heute zuviel verlangt... KI coding gibt das einfach nicht her
Zitat von @beidermachtvongreyscull:
Wenn ich die EXE-Datei eines Dienstes von denen in der Commandline ausführe, schmeißt der seinen stdout dort raus und läuft genauso lange, wie ich die Commandline offen lasse.
Wenn ich die EXE-Datei eines Dienstes von denen in der Commandline ausführe, schmeißt der seinen stdout dort raus und läuft genauso lange, wie ich die Commandline offen lasse.
Doch auch gut so...
Was erwartest du sonst? Wie ist denn nun die Frage? Mit Abhängigkeiten was erzwingen oder mit PowerShell Dienste prüfen und starten? Mit Loop auch dann so lange warten, bis der Dienst Status Running hat.
net start oder auch sc start warten doch aber eig. bis Dienst da ist.
Wieso willst du die EXE aufrufen?
sc start RabbitMQ
sc start STP Usermanagement
sc start LEXolution.DMS
sc start STP Server 8005
sc start STP QMDocConnector
sc start STP GIS Service
sc start STP beA Messageserver
sc start STPP InsoPortal Connector
Anm: Ist eh aber mit Leerzeichen nun Unsinn.
Hast du uns die Displaynames geposted? Jeder Dienst Hat Namen und Displaynamen ... Versuch mal den Namen....
Moin,
So würde ich es auch machen, oder aber per Powershell und
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...
und bevor der nächste Dienst gestartet wird, prüfen, oder der aktuelle Dienst erfolgreich gestartet werden konnte...
Zitat von @Crusher79:
net start oder auch sc start warten doch aber eig. bis Dienst da ist.
net start oder auch sc start warten doch aber eig. bis Dienst da ist.
sc start RabbitMQ
sc start STP Usermanagement
sc start LEXolution.DMS
sc start STP Server 8005
sc start STP QMDocConnector
sc start STP GIS Service
sc start STP beA Messageserver
sc start STPP InsoPortal Connector
So würde ich es auch machen, oder aber per Powershell und
Start-Service
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...
und bevor der nächste Dienst gestartet wird, prüfen, oder der aktuelle Dienst erfolgreich gestartet werden konnte...
Zitat von @em-pie:
So würde ich es auch machen, oder aber per Powershell und
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...
So würde ich es auch machen, oder aber per Powershell und
Start-Service
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...
Naja Praxis in die Gegenrichtung war ja immer Exchange 2010 Shutdown Script. Die berühmten 15 min. warten. Da wird Exchange auch der Reihe nach abgeschaltet.
Geht auch in die Gegenrichtung. Man könnte mit Loops und Prüfungen noch arbeiten. Wenn der Dienst Pending ist killen etc, etc.
Wenn wir unterstellen dass die so sauber hoch kommen würde so ein 3-Zeiler reichen.
Sehe ich nicht so. Denn man kann es auch so machen:
Sprich bei Leerzeichen in Hochkommata setzen.
Gruss Penny.
sc start RabbitMQ
sc start "STP Usermanagement"
sc start "LEXolution.DMS"
sc start "STP Server 8005"
sc start "STP QMDocConnector"
sc start "STP GIS Service"
sc start "STP beA Messageserver"
sc start "STPP InsoPortal Connector"
Gruss Penny.
Jup, stimmt. War nicht ganz da. Ohne benannten Parameter kann man es mitunter nicht auseinanderhalten
@beidermachtvongreyscull
Es gibt mehrere Methoden. Man kann Dienst auch im Fehlerfall neu starten lassen - Wiederherstellung.
Nur dann ist die Reihenfolge wieder Grütze. Batch Datei .bat oder .cmd geht auch ohne PowerShell. Ferner kannst du es auch umdrehen und für ein Beenden-Script verwenden. Falls man mal nur die Dienste ohne Server neu starten will.
Du kannst es einfach im Task-Schedule anlegen und nach jedem Neustart werden die Dienste gestartet.
Einen einmal angelegten aktiven Task kann man auch jederzeit manuell starten:
https://learn.microsoft.com/en-us/windows-server/administration/windows- ...
schtasks /run
Kommt es überhaupt zu Problemen, wenn alles auf "automatisch" steht? Die Reihenfolge ist teils sehr wichtig. Wir kennen aber bei z.B. Docker sowas wie Housekeeping. Mag sein dass die Dienste intern auf sich warten.
Läuft denn ohne die korrekte Startreihenfolge gar nix oder pendelt es sich nach einiger Zeit ein?
Habt ihr Geld dafür bezahlt? Normal müsste doch der Hersteller Auskunft geben können. Nicht ohne Grund wird er ja die Dienste auf "Automatisch" wieder setzen, wenn ihm die Abfolge und internas bekannt sind.
Ich verstehe was du meinst. Nur gibt es aktuell überhaupt sonst ein Problem?
Ist die Batch vom Hersteller produktiv oder als Troubleshoot zu sehen, wenn es zu Problemen kommen sollte?
Was bauen ist einfach. Nur würd ich mal hinterfragen wollen, was genau der Hersteller damit bezwecken will.