Tengo un batch script que parece:
sc stop myservice
sc start myservice
da error porque sc no espera a que se detenga el servicio. ¿Cómo puedo reiniciar un servicio con un script?
Tengo un batch script que parece:
sc stop myservice
sc start myservice
da error porque sc no espera a que se detenga el servicio. ¿Cómo puedo reiniciar un servicio con un script?
El cartel quiere asegurarse de que el servicio está parado antes de intentar reiniciarlo. Puede utilizar un bucle en la salida de "sc query" haciendo algo como esto:
:stop
sc stop myservice
rem cause a ~10 second sleep before checking the service state
ping 127.0.0.1 -n 10 -w 1000 > nul
sc query myservice | find /I "STATE" | find "STOPPED"
if errorlevel 1 goto :stop
goto :start
:start
net start | find /i "My Service">nul && goto :start
sc start myservice
+1, y una insignia GOTO. Se concede a aquellos que utilizan una declaración GOTO con cara de circunstancias.
Si es puramente para reiniciar el servicio, puede utilizar
Net stop myservice
Net start myservice
Sin embargo, si quiere acceder a las opciones de sc, puede utilizar el comando start /wait
start /B /WAIT CMD /C "sc stop myservice"
start /B /WAIT CMD /C "sc start myservice"
esta técnica es una solución más general que puede aplicarse a cualquier comando.
EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.
0 votos
¿Qué pasa con este ?