У меня есть служба Windows, которая неожиданно выходит каждые несколько дней. Есть ли простой способ следить за тем, чтобы он быстро перезагружался в случае сбоя?
57
У меня есть служба Windows, которая неожиданно выходит каждые несколько дней. Есть ли простой способ следить за тем, чтобы он быстро перезагружался в случае сбоя?
Под приложением Службы выберите свойства рассматриваемой службы.
Посмотрите вкладку восстановления - есть все виды опций - я бы установил First & Second Failure для перезапуска службы, Third для запуска пакетной программы, которая BLAT отправляет электронное письмо с третьим уведомлением об ошибке .
Вы также должны установить Reset Fail Count на 1, чтобы ежедневно сбрасывать счетчик ошибок.
РЕДАКТИРОВАТЬ:
Похоже, вы можете сделать это через командную строку:
SC failure w3svc reset= 432000 actions= restart/30000/restart/60000/run/60000
SC failure w3svc command= "MyBatchFile.cmd"
Ваш файл MyBatchFile.CMD может выглядеть так:
blat - -body "Service W3svc Failed" -subject "SERVICE ERROR" -to Notify@Example.com -server SMTP.Example.com -f Administrator@Example.com
SC failure w3svc command= "MyBatchFile.cmd"
ним должен быть путь или C: \ Windows \ System32. Вы можете поместить его в любой каталог, если используете полный путь, т. Е.SC failure w3svc command= "c:\Stuff\MyBatchFile.cmd"
Откройте Services.msc, дважды щелкните сервис, чтобы открыть Свойства сервиса, есть вкладка Восстановление, и эти настройки должны позволить вам перезапустить сервис в случае сбоя.
источник
Попробуйте установить время восстановления на ноль:
Эквивалент командной строки:
SC failure YOUR_SERVICE_NAME reset= 0 actions= restart/0/restart/0/restart/0
В любом случае, автоматическое восстановление не работает должным образом, поэтому рекомендуется использовать стороннее программное обеспечение. Кажется, что когда сервис завершает работу изящно с кодом завершения 0 окон, не пытается его восстановить.
источник
Я использую ServiceKeeper на моем сервере Windows 2008 на HostForLife.eu, и он работает очень хорошо. Ранее у меня был обзор ServiceHawk, но я предпочитаю использовать ServiceKeeper для более простого управления и интерфейса.
источник
У меня было аналогичное требование, чтобы запустить службу, если она остановлена. Я подумал, что самое простое решение - выполнять указанную ниже команду в планировщике задач Windows каждые 5 минут:
net start MyServiceName
Эта команда в основном запускает службу (если она остановлена) и не имеет никакого эффекта, если служба уже запущена.
источник
Недавно я реализовал опцию восстановления для запуска сценария powershell, который пытается перезапустить службу определенное количество раз и отправляет уведомление по электронной почте, а также.
После нескольких попыток (и несмотря на все другие вещи, которые я видел), конфигурация полей на вкладке восстановления в сервисах выглядит следующим образом:
Программа: Powershell.exe
** Не C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Powershell.exe
Параметры командной строки: -команда "& {SomePath \ YourScript.ps1 '$ args [0]' '$ args [1]' '$ args [n]'}"
например: -команда "& {C: \ PowershellScripts \ ServicesRecovery.ps1 'Имя службы'}"
** $ args - это параметры, которые будут переданы в ваш скрипт. Это не обязательно.
вот скрипт powershell:
источник
Это был мой ответ на похожую тему. Надеюсь, это поможет ...
Вы можете запланировать простой скрипт VBS, как этот, чтобы периодически перезапускать службу на компьютере, если это необходимо.
источник
Кто-то задал похожий вопрос в Super User: вы можете установить инструмент, который контролирует службы Windows. Что-то вроде Service Hawk поможет вам запустить службы или позволит запланировать автоматический перезапуск (возможно, ночью) для обеспечения бесперебойной работы службы.
источник