Eu tenho um script em lote que se parece com:
sc stop myservice
sc start myservice
erros porque o sc não espera até que o serviço seja interrompido. Como reinicio um serviço com um script?
Eu tenho um script em lote que se parece com:
sc stop myservice
sc start myservice
erros porque o sc não espera até que o serviço seja interrompido. Como reinicio um serviço com um script?
Respostas:
O pôster deseja garantir que o serviço seja interrompido antes de tentar reiniciá-lo. Você pode usar um loop na saída da "consulta sc" fazendo algo como isto:
fonte
Pode estar faltando alguma coisa, mas eu uso isso o tempo todo:
ou mais curto:
fonte
Simplesmente morto com PowerShell:
Melhor ainda, usando nomes de exibição:
Get-Help Restart-Service
para maisfonte
Se for apenas para reiniciar o serviço, você pode usar
No entanto, se você quiser acessar as opções de sc, poderá usar o comando start / wait
essa técnica é uma solução mais geral que pode ser aplicada a qualquer comando.
fonte
sc stop myservice
apenas enviará o comando stop e retornará antes que o serviço seja interrompido. Chamar sc com start / b não ajudará.Para reiniciar silenciosamente algum serviço, que solicita que as confirmações sejam interrompidas (como serviço do servidor, por exemplo), você pode adicionar / y ao final do comando stop.
Seria útil para execução automática de script.
fonte
Se você deseja reiniciar um serviço com falha, não precisa executar um script. No snap-in do MMC de serviços, clique com o botão direito do mouse em um serviço, selecione propriedades, clique na guia recuperação. Aqui você pode definir quais ações você deseja que o serviço seja interrompido. Há muita flexibilidade disponível. Você precisará de um script se estiver tentando parar o serviço, faça algo e inicie o script, anteceda o arquivo em lotes
net stop "myserviceshortname"
e termine comnet start "myserviceshortname"
No vbscipt, é um pouco mais de código para interromper um serviço e seus 'dependentes:
Aqui está iniciando um serviço e tudo o que depende (isso deve ser familiar)
fonte
Você pode usar os seguintes comandos:
fonte