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