Como excluir o arquivo de bloqueio se o serviço falhou ao iniciar

0

Eu tenho um serviço que tem seu tipo de inicialização definido como automático. No entanto, durante uma reinicialização inesperada, este serviço falhou ao iniciar devido ao arquivo de bloqueio existente. Como posso excluir este arquivo de bloqueio automaticamente antes que esta tentativa de serviço inicie? Ou como detectar e excluir o arquivo de bloqueio se o serviço falhou na inicialização? Estou ciente da guia Recuperação nas propriedades do serviço. Eu só preciso de um arquivo em lotes para fazer a tarefa de exclusão em falhas subseqüentes. Se há uma maneira mais eficiente de fazer isso, eu ficaria feliz em apreciá-lo.

    
por euler 09.08.2015 / 03:19

1 resposta

0

O Stackoverflow tem um excelente exemplo sobre como detectar se um serviço está sendo executado e fazer algo, se não :

for /F "tokens=3 delims=: " %%H in ('sc query MyServiceName ^| findstr "        STATE"') do (
  if /I "%%H" NEQ "RUNNING" (
   REM Put your code you want to execute here
   REM For example, the following line
   del E:\DSpace\handle-server\txns
   sc start MyServiceName
  )
)

Tudo o que você precisa fazer é substituir MyServiceName pelo nome abreviado do seu serviço e, em seguida, colocar esse arquivo em lote na pasta de inicialização ou simplesmente executá-lo quando for necessário. Eu coloquei a linha para excluir seu bloqueio arquivo já.

    
por 09.08.2015 / 20:36