Reinicie o serviço do Windows automaticamente se não estiver em execução

5

Eu tenho um serviço do windows em execução em um servidor Windows 2003. Na opção de propriedades, quando você clica com o botão direito do mouse no serviço, há uma opção para reiniciar o serviço se ele falhar. As opções disponíveis são para o primeiro, segundo e quaisquer falhas subsequentes.

Eu tentei usar essa opção para reiniciar o serviço quando ele não está em execução, mas parece que ele só reinicia o serviço se o serviço falhar como resultado de uma falha. O problema que eu tenho é que se houver uma falha, o serviço pega isso e desliga o serviço 'graciosamente'. Isso significa que não está sendo reiniciado.

Existe uma maneira de reiniciar o serviço, independentemente de ele ter parado devido a uma falha ou se ele parou de funcionar?

Obrigado

    
por ziggy 31.01.2011 / 20:26

3 respostas

9

Para um serviço mal comportado como esse, criaria um script pequeno que verifica se ele está sendo executado e o inicia, se não estiver. Então eu usaria tarefas agendadas para executar o script a cada 5 minutos ou mais.

Exemplo de script (verifica o serviço de spooler):

@echo off
Rem Look for the Print Spooler service in the list of started services
net start | find /i "Print Spooler"
Rem if not found, start it and a restart occurred.
if "%errorlevel%"=="1" (
   echo Service "Print Spooler" restarted at %time% on %date% by Script %0>>c:\ServiceRestart.Log
   net start "Print Spooler"
)
    
por 31.01.2011 / 20:46
1

Que serviço é esse? Eu tive um problema estranho com o serviço MS Fax uma vez. Eu resolvi isso verificando os processos no Gerenciador de Tarefas, terminando o processo se ele estiver listado, abrindo um Prompt de Comando e digitando:

net start faxsvc.exe

Você pode usar net stop faxsvc.exe para encerrar o serviço também.

Outra coisa é verificar as dependências e reiniciá-las também, ou seja, aquelas de que o serviço de fax depende.

EDIT : Eu acho que isso pode ajudar, mas eu não li sua pergunta muito bem. Eu sei que há um programa chamado Service Hawk disponível, mas custa dinheiro. Outra ideia seria combinar um arquivo em lote que reiniciará o serviço a cada xx segundos / minutos / horas /, embora a duração entre o serviço em execução e a falha seja

.     
por 31.01.2011 / 20:34
0

Aqui está a resposta!

Usar o seguinte comando do Powershell pode verificar & iniciar o serviço necessário

$A = get-service AdobeARMservice 
if ($A.Status -eq "Stopped") {$A.start()} elseIf ($A.status -eq "Running") {Write-Host -ForegroundColor Yellow $A.name "is running"}   
    
por 30.11.2016 / 07:26