У меня есть служба, которая имеет тип запуска установлен автоматически. Однако во время непредвиденного перезапуска эта служба не запустилась из-за существующего файла блокировки. Как я могу автоматически удалить этот файл блокировки перед попыткой запуска этой службы? Или как обнаружить и удалить файл блокировки, если при запуске службы произошел сбой? Мне известно о вкладке Восстановление в свойствах сервиса. Мне просто нужен командный файл, чтобы выполнить задачу удаления при последующих сбоях. Если есть более эффективный способ сделать это, я с удовольствием это оценил бы.

1 ответ1

0

Stackoverflow имеет отличный пример того, как определить, работает ли служба и что-то сделать, если нет:

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
  )
)

Все, что вам нужно сделать, это заменить MyServiceName на короткое имя вашей службы, а затем поместить этот пакетный файл в папку автозагрузки или просто запустить его, когда вам нужно, я поставил строку, чтобы удалить ваш файл блокировки уже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .