Компания, в которой я работаю, имеет сервер, который контролирует внешнюю камеру / систему наблюдения. Следующий процесс продолжает умирать: PureActiv Video Processor.
Моя команда должна постоянно перезапускать службу вручную, используя Управление компьютером.
Может ли кто-нибудь предоставить мне сценарий, который проверит службу и перезапустит службу, если она не запущена.
Ниже представлена необходимая информация:
Система: Windows Server 2003 Service Edition с пакетом обновления 2 (сборка 3790) Служба: PureActiv Video Processor Расположение службы: "C: \ Program Files \ PureTech Systems \ PureActivDAQServices \ Pure.PureLink.VideoProcessor.VideoProcessorService.exe"
Спасибо, -jm
Если служба запускается и завершается неправильно, вам не нужен сценарий для этого.
РЕДАКТИРОВАТЬ:
Да, и, как все добавили, вам непременно стоит проверить, что происходит со службой. Traveling Tech Guy хорошо подмечает утечки памяти.
Я бы также проверил средство просмотра событий, чтобы узнать, почему служба дает сбой - это может быть незначительное исправление или обновление драйвера навсегда решит проблему.
Еще один момент: если процесс пропускает память и оставляет выделенную память после сбоя, перезапуск его снова и снова снижает стабильность ОС и увеличивает вероятность того, что вся ваша система исчерпает ресурсы раньше.
Короче, рекомендую разобраться с проблемой, а не лейкопластырем :)
Посмотрите, можете ли вы или кто-то из ваших делегатов периодически запускать Sysinternals Process Explorer на компьютере и сервисе, на который он влияет, после того, как он работал в течение дня.
В разделе services.msc найдите свойства службы; там должно быть указано имя исполняемого файла. Это то, что вы будете отслеживать в Process Explorer. В PE щелкните правой кнопкой мыши имя исполняемого файла и получите его свойства. Обратите внимание на использование памяти.
После сбоя службы не перезапускайте ее сразу. Запустите PE и запустите службу. Получите его свойства и обратите внимание на использование памяти после того, как он проработает несколько минут.
Вы можете обратиться к поставщику с ошибкой в драйвере.
Перечисленные ранее обходные пути включают перезапуск службы через диалоговое окно «Служба», перезапуск службы с помощью запланированного сценария или перезагрузку компьютера по расписанию, например, каждый день в полдень или в полночь или всякий раз, когда можно допустить некоторый простой.
Вы можете запланировать простой сценарий vbs, подобный этому, для периодического перезапуска службы на локальном компьютере только в случае необходимости.
strComputer = "." strSvcName = "PureActiv Video Processor" set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") set objService = objWMI.Get("Win32_Service.Name='" & strSvcName & "'") If objService.State= "Stopped" Then objService.StartService() End If
Этот вопрос уже задавался, см. Как я могу автоматически перезапустить службу Windows в случае ее сбоя?
Надеюсь это поможет.
Это работа для более общего инструмента работоспособности и мониторинга системы, такого как ActivExperts Network Monitor или что-то более дорогое (Operations Manager) или более открытый исходный код (Nagios) и др. ^^
@Oskar повторно отслеживает даже один сервер - вы даже можете использовать что-то вроде Service Hawk, который отслеживает службы Windows, без необходимости использовать такой большой пакет мониторинга.