Tengo un script por lotes que se parece a:
sc stop myservice
sc start myservice
se equivoca porque sc no espera hasta que se detenga el servicio. ¿Cómo reinicio un servicio con un script?
Tengo un script por lotes que se parece a:
sc stop myservice
sc start myservice
se equivoca porque sc no espera hasta que se detenga el servicio. ¿Cómo reinicio un servicio con un script?
Respuestas:
El póster quiere asegurarse de que el servicio se detenga antes de intentar reiniciarlo. Puede usar un bucle en la salida de "sc query" haciendo algo como esto:
fuente
Puede faltar algo, pero lo uso todo el tiempo:
o más corto:
fuente
Muy simple con powershell:
Aún mejor, usando nombres para mostrar:
Get-Help Restart-Service
para másfuente
Si es solo para reiniciar el servicio, puede usar
Sin embargo, si desea acceder a las opciones de sc, puede usar el comando start / wait
Esta técnica es una solución más general que se puede aplicar a cualquier comando.
fuente
sc stop myservice
solo enviará el comando de detención y regresará antes de que se detenga el servicio. Llamar a sc con start / b no ayudará.Para tener un reinicio silencioso de algún servicio, que solicita que se detengan las confirmaciones (como el servicio del servidor, por ejemplo), puede agregar / y al final del comando de detención.
Sería útil para la ejecución automática de scripts.
fuente
Si desea reiniciar un servicio fallido, no necesita ejecutar un script. En los servicios MMC, haga clic derecho en un servicio, seleccione propiedades, haga clic en la pestaña de recuperación. Aquí puede establecer qué acciones desea que se realicen si el servicio se detiene. Hay mucha flexibilidad disponible. Necesitará una secuencia de comandos si está tratando de detener el servicio, haga algo y luego inicie la secuencia de comandos, introduzca el archivo por lotes
net stop "myserviceshortname"
y termine connet start "myserviceshortname"
En vbscipt es un poco más de código para detener un servicio y sus dependientes:
Aquí está comenzando un servicio y cualquier cosa de la que dependa (esto debería ser familiar)
fuente
Puede usar los siguientes comandos:
fuente