"Automatisch" vs "Automatisch (verzögerter Start)"

350

Bei der Installation von Windows-Diensten gibt es zwei Möglichkeiten, einen Windows-Dienst beim Windows-Start automatisch zu starten. Einer ist automatisch und der andere ist automatisch (verzögerter Start) . Was ist der Unterschied zwischen diesen beiden im Detail?

Wenn Sie beispielsweise das Installationsprogramm mit wixtoolset erstellen, hat das ServiceConfigElement das DelayedAutoStartAttribut. Wie wirkt sich das aus, was passiert, wenn Dienste beim Booten gestartet werden?

WiX-Dokumentation: ServiceConfig-Element

Sachin Kainth
quelle
24
Ich bin mir nicht sicher, wie dies als nicht zum Thema gehörend angesehen wird, da wixtoolset.org Ihnen die Möglichkeit gibt, dies anzugeben, und wir erlauben Fragen zu Wix.
Aelphaeis
11
Ich habe hier nach einer Antwort für den Wix-Installer gesucht. Dies ist absolut ein Thema für die Programmierung, da ein Installationsprogramm für die Programmierung relevant ist.
Still.Tony
6
Einverstanden mit Smithers und PitLock. Wenn Sie sich die Abstimmungen sowohl für die Frage als auch für die Antworten zu diesem und anderen "geschlossenen" Themen ansehen, scheinen einige Mitglieder mehr an dem Buchstaben des Gesetzes als an der Nützlichkeit des Beitrags interessiert zu sein, der das Ganze darstellt Idee hinter solchen Seiten. Anscheinend erkennen sie nicht, dass diese spezielle Frage tatsächlich die "Programmierung" beeinflusst. Zumindest haben sie die Post nicht abgenommen.
Jeff Moden
7
Ich bin nicht der Meinung, dass dies kein Thema ist. Dies ist für Entwickler sehr relevant.
mghaoui

Antworten:

484

Kurz gesagt, Dienste, die auf Automatisch eingestellt sind, werden während des Startvorgangs gestartet, während Dienste, die als verzögert gestartet werden, kurz nach dem Start gestartet werden.

Starten Ihres Dienstes Verzögert verbessert die Startleistung Ihres Servers und bietet Sicherheitsvorteile, die in dem Artikel beschrieben sind, auf den Adriano in den Kommentaren verweist.

Update: "Kurz nach dem Start" ist standardmäßig 2 Minuten nach dem Start des letzten "automatischen" Dienstes. Dies kann gemäß Windows Internals und anderen Quellen ( 3 , 4 ) über einen Registrierungsschlüssel konfiguriert werden .

Die Registrierungsschlüssel von Interesse (zumindest in einigen Windows-Versionen) sind:

  • HKLM\SYSTEM\CurrentControlSet\services\<service name>\DelayedAutostartwird den Wert haben, 1wenn verzögert, 0wenn nicht.
  • HKLM\SYSTEM\CurrentControlSet\services\AutoStartDelayoder HKLM\SYSTEM\CurrentControlSet\Control\AutoStartDelay(unter Windows 10): Dezimalzahl der zu wartenden Sekunden, möglicherweise muss diese erstellt werden. Gilt global für alle Verzögerten Dienste.
Colin Pickard
quelle
11
Ich frage mich, wie kurz ist in Kürze? Nicht viele Informationen da draußen. Es sieht irgendwie so aus, als würde Windows warten, bis die Systemlast sinkt oder ein bestimmter Schritt während der Startsequenz erreicht wurde. Danach werden verzögerte Dienste gestartet. Irgendwelche Einwände oder sogar Wissen darüber?
Leo
10
@leo 2 Minuten nach dem letzten automatischen Service - Antwort aktualisiert.
Colin Pickard
6
Wie entscheidet Windows bei mehreren verzögerten Startdiensten, welche zuerst gestartet werden sollen?
Ernest
4
@ErnestSoeralaya-Dienste können als von anderen Diensten abhängig markiert werden. Windows stellt sicher, dass die Abhängigkeiten zuerst gestartet werden. Danach sollten die Dienste in alphabetischer Reihenfolge gestartet werden. Dies ist jedoch nicht garantiert.
Colin Pickard
5
@MeM Ein Fehler in einem Dienst wirkt sich nicht auf einen anderen Dienst aus. Die einzige Ausnahme bilden Dienste, die als von anderen Diensten abhängig gekennzeichnet sind.
Colin Pickard