Che cosa fa "avvio ritardato" nel tipo di avvio per un servizio Windows?


79

Qual è la differenza tra automatico e automatico (avvio ritardato) per un'impostazione della proprietà per un servizio Windows? cioè cosa guadagno o perdo impostando il mio servizio come l'uno o l'altro?

Esecuzione del servizio su Windows Server 2008 x64



In relazione a StackTranslate.it, risposte dettagliate: "Automatico" vs "Automatico (avvio ritardato)"
Bacco

Risposte:


91

Un servizio contrassegnato come automatico (avvio ritardato) inizierà poco dopo l'avvio di tutti gli altri servizi designati come automatico . Nella mia esperienza, ciò significa che vengono avviati 1-2 minuti dopo l'avvio del computer.

L'impostazione è molto utile nel ridurre la "corsa folle" per le risorse all'avvio di una macchina.

Si noti che quando si avviano 20 servizi tutti contemporaneamente, ognuno si avvierà più lentamente poiché compete con gli altri per le parti delle preziose risorse della macchina (CPU / RAM / Disco / Rete). Cioè, ogni servizio richiede più tempo per diventare disponibile!

Se si dispone di alcuni servizi critici, è possibile impostare quelli pochi su Automatico e il maggior numero possibile di altri su Automatico (Avvio ritardato) . Ciò garantirà che i servizi critici ottengano la maggior parte delle risorse in anticipo e diventino disponibili prima, mentre i servizi non critici iniziano un po 'più tardi (che per definizione è ok).


39
Infatti, dopo aver gestito i servizi di avvio non ritardato, accoderà un thread di lavoro con un ritardo predefinito di 120 secondi, che può essere sovrascritto dal valore AutoStartDelay in HKLM\SYSTEM\CurrentControlSet\Control. Quando viene eseguito questo thread funzionante, vengono gestiti i servizi di avvio ritardato e quando vengono eseguiti, SCM segnala l'evento \ BaseNamedObjects \ SC_AutoStartComplete ...
Tamara Wijsman

7
Oltre a @TomWijsman, puoi apparentemente impostare il ritardo servizio per servizio aggiungendo un DWORDfor HKLM\SYSTEM\CurrentControlSet\services\<service name>\AutoStartDelay.
Stajs,

8

Da quanto ho capito, è semplicemente un ritardo prima di avviare il servizio.

Le versioni successive di Windows lo introdussero per assicurarsi che non si inciampassero a vicenda durante il processo di avvio (l'avvio simultaneo di processi gazillion non favorisce le prestazioni).

La documentazione per questa funzione afferma che i servizi contrassegnati in questo modo verranno avviati "poco dopo l'avvio", si spera che una volta che i servizi richiesti all'avvio si siano stabilizzati un po '.


0

Ecco un esempio Ho un servizio SonarQube che dipende dal mio servizio di database MySQL. Quindi, ho impostato il servizio MySQL su automatico per mettere in funzione il database all'avvio della macchina. Ho il servizio SonarQube impostato sull'avvio automatico (ritardato) per assicurarmi che si avvii DOPO che il servizio di database da cui dipende è stato avviato.

Se si dispone di una dipendenza come questa, può essere utile utilizzare l'avvio ritardato per assicurarsi che i servizi dipendenti vengano avviati nell'ordine corretto.


8
Se hai una dipendenza come questa, il modo corretto di gestirlo è configurare esplicitamente un servizio in modo che dipenda dall'altro, invece di aspettare un paio di minuti e sperare che sia iniziato.
Massimo

Grazie. Forse puoi spiegare come farlo? E, sembra che se funziona è corretto. Forse quello che mi consiglia è "migliore", con il quale non sarei in disaccordo?
Russ Jackson,


0

Questo viene utilizzato anche quando si desidera ritardare l'avvio di un servizio per consentire l'avvio completo di altri servizi, ad esempio il client SCCM, che esegue un avvio ritardato per consentire l'avvio completo del servizio WMI poiché dipende dal fatto che è completamente attivo e in esecuzione.


Noterò che tale requisito è un segno di negligenza da parte dell'autore del servizio. Il modo corretto per risolvere un problema del genere è utilizzare una dipendenza di servizio esplicita.
Brian,

0

Viene utilizzato principalmente per i servizi che iniziano con gli account AD. Se il servizio sta tentando di avviarsi prima che il server disponga di una connessione di rete per contattare il controller di dominio, fallirà e talvolta il sistema si blocca e diventa irraggiungibile.

Il ritardo garantisce l'avvio del servizio dopo l'attivazione della connessione di rete per poter utilizzare l'account AD.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.