Was bewirkt "verzögerter Start" beim Starttyp für einen Windows-Dienst?

78

Was ist der Unterschied zwischen Automatisch und Automatisch (verzögerter Start) für eine Eigenschaftseinstellung für einen Windows-Dienst? dh was gewinne oder verliere ich, wenn ich meinen Dienst als den einen oder anderen einstelle?

Ausführen des Dienstes unter Windows Server 2008 x64

Kerl
quelle
Verwandte auf Stapelüberlauf, detaillierte Antworten: "Automatisch" vs "Automatisch (verzögerter Start)"
Bacco

Antworten:

91

Ein als Automatisch gekennzeichneter Dienst (verzögerter Start) wird kurz nach dem Start aller anderen als Automatisch gekennzeichneten Dienste gestartet. Nach meiner Erfahrung bedeutet dies, dass sie 1-2 Minuten nach dem Start des Computers gestartet werden.

Diese Einstellung ist am nützlichsten, um den "Wahnsinn" für Ressourcen beim Hochfahren einer Maschine zu verringern.

Beachten Sie, dass bei 20 Diensten, die alle gleichzeitig gestartet werden, jeder langsamer startet, da er mit den anderen um die wertvollen Ressourcen des Computers konkurriert (CPU / RAM / Festplatte / Netzwerk). Das heißt, es dauert länger, bis jeder Dienst verfügbar ist!

Wenn Sie einige wichtige Dienste haben, können Sie diese auf Automatisch setzen und so viele andere wie möglich auf Automatisch (verzögerter Start) . Dies stellt sicher, dass die kritischen Services frühzeitig die meisten Ressourcen erhalten und früher verfügbar sind, während die nicht kritischen Services etwas später starten (was per Definition in Ordnung ist).

CoreTech
quelle
39
Nach der Verarbeitung der Dienste für den nicht verzögerten Start wird ein Arbeitsthread mit einer Standardverzögerung von 120 Sekunden in die Warteschlange gestellt, der durch den AutoStartDelay-Wert in überschrieben werden kann HKLM\SYSTEM\CurrentControlSet\Control. Wenn dieser bearbeitete Thread ausgeführt wird, werden die Dienste für verzögerten Start behandelt, und wenn sie ausgeführt werden, signalisiert der SCM das Ereignis \ BaseNamedObjects \ SC_AutoStartComplete ...
Tamara Wijsman,
7
Neben @TomWijsman können Sie die Verzögerung anscheinend von Service zu Service einstellen, indem Sie ein DWORDfür hinzufügen HKLM\SYSTEM\CurrentControlSet\services\<service name>\AutoStartDelay.
Stajs
8

Nach meinem Verständnis dauert es nur eine Weile, bis der Dienst gestartet wird.

In neueren Versionen von Windows wurde dies eingeführt, um sicherzustellen, dass sie während des Startvorgangs nicht über die Füße stolpern (ein zeitgleicher Start von mehreren Millionen Prozessen wirkt sich nicht nachteilig auf die Leistung aus).

In der Dokumentation zu dieser Funktion wird angegeben, dass die so gekennzeichneten Dienste "kurz nach dem Start" gestartet werden, hoffentlich nachdem sich die für die Startzeit erforderlichen Dienste etwas beruhigt haben.


quelle
0

Hier ist ein Beispiel. Ich habe einen SonarQube-Dienst, der von meinem MySQL-Datenbankdienst abhängt. Deshalb habe ich den MySQL-Dienst auf "Automatisch" gesetzt, damit die Datenbank beim Booten des Computers betriebsbereit ist. Ich habe den SonarQube-Dienst auf den automatischen (verzögerten) Start eingestellt, um sicherzustellen, dass er nach dem Start des Datenbankdienstes, von dem er abhängt, gestartet wird.

Wenn Sie eine solche Abhängigkeit haben, kann es hilfreich sein, den verzögerten Start zu verwenden, um sicherzustellen, dass abhängige Dienste in der richtigen Reihenfolge gestartet werden.

Russ Jackson
quelle
8
Wenn Sie eine solche Abhängigkeit haben, müssen Sie einen Dienst explizit so konfigurieren, dass er von dem anderen abhängt, anstatt ein paar Minuten zu warten und zu hoffen, dass er gestartet wurde.
Massimo
Vielen Dank. Vielleicht kannst du erklären, wie das geht? Und scheint, wenn es funktioniert, ist es richtig. Vielleicht empfehlen Sie "besser", was ich nicht ablehnen würde?
Russ Jackson
1
Siehe hier: serverfault.com/questions/24821/… .
Massimo
0

Dies wird auch verwendet, wenn Sie den Start eines Dienstes verzögern möchten, damit andere Dienste vollständig gestartet werden können, z. B. der SCCM-Client, der einen verzögerten Start ausführt, damit der WMI-Dienst vollständig gestartet werden kann, da er davon abhängig ist, dass er vollständig ausgeführt wird und läuft.

John Dean
quelle
Ich werde bemerken, dass eine solche Anforderung ein Zeichen der Nachlässigkeit des Autors des Dienstes ist. Der richtige Weg, um ein solches Problem zu lösen, ist die Verwendung einer expliziten Dienstabhängigkeit.
Brian,
0

Dies wird hauptsächlich für Dienste verwendet, die mit AD-Konten beginnen. Wenn der Dienst versucht, zu starten, bevor der Server eine Netzwerkverbindung zum DC hat, schlägt dies fehl und manchmal bleibt das System hängen und ist nicht mehr erreichbar.

Die Verzögerung stellt sicher, dass der Dienst gestartet wird, sobald die Netzwerkverbindung hergestellt ist, um das AD-Konto dafür zu verwenden.

Kein Name
quelle