пятница, 25 ноября 2011 г.

APGuard. Следим за AdvertisePro.

К сожалению программам иногда свойственно зависать или падать, особенно если они работают круглосуточно. Не является исключением и наша программа вывода видео на табло - AdvertisePro. Чтобы сделать нашу жизнь чуточку проще :) - я написал службу, которая следит за тем, чтобы наша программа всегда была запущена и по возможности определяет, что программа продолжает трудится и не отлынивает зависнув. Необходимо уточнить, что программа будет запущенна сразу после входа пользователя в систему (имя пользователя можно указать). Поэтому может понадобиться настройка системы на автологон при рестарте или запуске компьютера. Также наша служба может следить и за некоторыми другими службами, которые нужны для программы - первый кандидат служба nibus. Итак, встречайте AdvertisePro Guard (APGuard)
Перед установкой убедитесь, что установлен .NET Framework 2.0, скачайте файл msi и установите его. После установки служба APGuard будет автоматически запускаться после рестарта, поэтому необходимо внести все настройки в конфигурационный файл APGuard.exe.config расположенном в папке с установленной программой. Рекомендую сделать резервную копию перед внесением изменений. После внесения изменений можно запустить службу командой net start apguard.

Теперь подробнее про файл APGuard.exe.config.

Открываем его текстовым редактором и находим нужный нам раздел.
Красным подчеркнут полный путь к наше программе, зеленым выделено пустое значение, а синим показан элемент списка названий служб, за которыми нам надо следить, просто добавьте такую же строчку, поменяв название службы, если необходимо следить еще за какой-нибудь службой. Временной интервал задается в формате ЧЧ:ММ:СС. Теперь описания каждого параметра:
  • AdvertiseProFile - полный путь к программе.
  • WorkingDir - рабочая папка. Если не задана, то папка с программой.
  • GuardTimerInterval - интервал проверки работоспособности, здесь каждые 10 сек.
  • CommandLineArgs - параметры для запуска программы.
  • WatchIpgm - проверять зависший ipgm.exe (если вы не знаете для чего это - оставьте).
  • IpgmMaxDuration - время в течении которого ожидается завершение выполнения ipgm.exe.
  • WatchApplication - выполнять наблюдение (True/False).
  • UserName - имя пользователя, при входе которого будет начато наблюдение и запущена программа. Если не указано, то для любого.
  • AppMoniker - название префикса моникера для нахождения запущенного экземпляра программы. Задается в файле конфигурации AdvertisePro.cfg, пример: <process priority="default" autonomous="false" debug_level="0" moniker="AdvertisePro:"></process>. Необязательный параметр. В случае задания позволяет лучше определить работоспособность программы AdvertisePro.
  • ShedulerName - имя компонента Планировщик (см. статьи про Планировщик и компоненты). Необязательный параметр. В случае задания позволяет лучше определить работоспособность программы AdvertisePro. Работает при указании AppMoniker.
  • RestartDelay - задержка при перезапуске программы. Необходима, так как при быстром рестарте предыдущий экземпляр программы не успевает выгрузиться и блокирует новый.
  • WatchedServices - список служб для наблюдения.
После внесения изменений запустите службу командой net start apguard. Если вы все указали правильно, то программа должна запуститься.
Служба APGuard хранит файл с журналом сообщений в папке .\logs в которую у нее должен быть доступ (касается особенно для систем Vista+ с активным UAC).

1 комментарий:

  1. Круто!!! Еще не пробовал, но уже сам факт наличия такой штуки приводит в восторг!! :)

    ОтветитьУдалить