¿Qué hace el "inicio retrasado" en el tipo de inicio para un servicio de Windows?

77

¿Cuál es la diferencia entre Automático y Automático (inicio retrasado) para una configuración de propiedad para un servicio de Windows? es decir, ¿qué gano o pierdo al configurar mi servicio como uno u otro?

Ejecutando el servicio en Windows Server 2008 x64

Chico
fuente
Relacionado con el desbordamiento de pila, respuestas detalladas: "Automático" vs "Automático (inicio retrasado)"
Bacco

Respuestas:

91

Un servicio marcado como Automático (Inicio retrasado) se iniciará poco después de que se hayan iniciado todos los demás servicios designados como Automático . En mi experiencia, esto significa que se inician 1-2 minutos después de que se inicia la computadora.

La configuración es más útil para disminuir la "fiebre loca" por los recursos cuando una máquina arranca.

Tenga en cuenta que cuando tiene 20 servicios que se inician todos al mismo tiempo, cada uno se iniciará más lentamente, ya que compite con los demás por segmentos de los preciosos recursos de la máquina (CPU / RAM / Disco / Red). Es decir, cada servicio tarda más en estar disponible.

Si tiene algunos servicios que son críticos, es posible que desee establecer esos pocos en Automático y establecer tantos de los demás como sea posible en Automático (inicio retrasado) . Esto asegurará que los servicios críticos obtengan la mayor cantidad de recursos antes de tiempo y estén disponibles antes, mientras que los servicios no críticos comienzan un poco más tarde (lo cual, por definición, está bien).

CoreTech
fuente
38
De hecho, después de manejar los servicios de Inicio no retrasado, pondrá en cola un subproceso de trabajo que tiene un retraso predeterminado de 120 segundos, que puede ser anulado por el valor de AutoStartDelay en HKLM\SYSTEM\CurrentControlSet\Control. Cuando se ejecuta este subproceso trabajado, se manejan los servicios de inicio retrasado y cuando se hacen, el SCM señala el evento \ BaseNamedObjects \ SC_AutoStartComplete ...
Tamara Wijsman
66
Además de @TomWijsman, aparentemente puede establecer la demora servicio por servicio agregando un DWORDfor HKLM\SYSTEM\CurrentControlSet\services\<service name>\AutoStartDelay.
Stajs
8

Según tengo entendido, es simplemente un retraso antes de lanzar el servicio.

Las versiones posteriores de Windows introdujeron esto para garantizar que no se tropezaran entre sí durante el proceso de arranque (tener un billón de procesos que se inician al mismo tiempo no es propicio para el rendimiento).

La documentación para esta característica establece que los servicios marcados de esta manera se iniciarán "poco después del arranque", con suerte una vez que los servicios requeridos durante el tiempo de arranque se hayan calmado un poco.


fuente
0

Aquí hay un ejemplo. Tengo un servicio SonarQube que depende de mi servicio de base de datos MySQL. Entonces, configuré el servicio MySQL en automático para que la base de datos esté en funcionamiento cuando la máquina arranca. Tengo el servicio SonarQube configurado en inicio automático (retrasado) para asegurarme de que se inicie DESPUÉS de que se inicie el servicio de base de datos del que depende.

Si tiene una dependencia como esta, puede ser útil utilizar el inicio retrasado para asegurarse de que los servicios dependientes se inicien en el orden correcto.

Russ Jackson
fuente
8
Si tiene una dependencia como esta, la forma correcta de manejarla es configurar explícitamente un servicio para que dependa del otro, en lugar de esperar un par de minutos y esperar que haya comenzado.
Massimo
Gracias. ¿Quizás puedas explicar cómo hacer eso? Y, parece que si funciona es correcto. ¿Quizás lo que recomiendas es "mejor", con lo cual no estaría en desacuerdo?
Russ Jackson
1
Ver aquí: serverfault.com/questions/24821/… .
Massimo
0

Esto también se usa cuando desea retrasar el inicio de un servicio para permitir que otros servicios se inicien por completo, como el Cliente SCCM, que hace un inicio retrasado para permitir que el servicio WMI se inicie completamente, ya que depende de que esté completamente activo y corriendo.

John Dean
fuente
Notaré que tal requisito es una señal de negligencia por parte del autor del servicio. La forma correcta de resolver este problema es utilizar una dependencia de servicio explícita.
Brian
0

Esto se usa principalmente para servicios que comienzan con cuentas AD. Si el servicio está tratando de iniciarse antes de que el servidor tenga una conexión de red para contactar al DC, fallará y, a veces, el sistema se atasca y no se puede acceder.

La demora asegura que el servicio se iniciará una vez que la conexión de red esté activa para poder usar la cuenta AD.

Sin nombre
fuente