verificar se o serviço está totalmente parado antes de tentar iniciar o serviço

1

Estou tentando garantir que o arquivo em lote saiba que o serviço "Tomcat7" está totalmente parado antes de tentar iniciar o serviço "Tomcat7" novamente. Eu sei que "NET STOP" e "NET START" devem esperar para retornar até que cada um tenha parado ou iniciado completamente, mas tenho visto casos em que ele continua de qualquer maneira, possivelmente devido a uma longa espera por tempo limite às vezes.

@ECHO OFF

net stop Tomcat7

rd /s /q "C:\storefront\live\work"
rd /s /q "C:\storefront\live\logs"

for /F "tokens=3 delims=: " %%H in ('sc query Tomcat7 ^| findstr "        STATE"') do (
  if /I "%%H" EQ "STOPPED" (
    net start Tomcat7
  )
)
    
por Matt Weick 23.06.2015 / 18:58

2 respostas

1

Use sc query Tomcat7 para obter o status do serviço.

    
por 23.06.2015 / 19:07
0
sc start stisvc || Echo Service Not Fully Exited

Isso não faz o que você quer? Lembre-se, tentamos coisas e pegamos erros, não testamos e depois fazemos. Pense no porquê.

    
por 24.06.2015 / 10:58

Tags