К сожалению программам иногда свойственно зависать или падать, особенно если они работают круглосуточно. Не является исключением и наша программа вывода видео на табло - AdvertisePro. Чтобы сделать нашу жизнь чуточку проще :) - я написал службу, которая следит за тем, чтобы наша программа всегда была запущена и по возможности определяет, что программа продолжает трудится и не отлынивает зависнув. Необходимо уточнить, что программа будет запущенна сразу после входа пользователя в систему (имя пользователя можно указать). Поэтому может понадобиться настройка системы на автологон при рестарте или запуске компьютера. Также наша служба может следить и за некоторыми другими службами, которые нужны для программы - первый кандидат служба
Перед установкой убедитесь, что установлен .NET Framework 2.0, скачайте файл msi и установите его. После установки служба
Теперь подробнее про файл
Открываем его текстовым редактором и находим нужный нам раздел.
Красным подчеркнут полный путь к наше программе, зеленым выделено пустое значение, а синим показан элемент списка названий служб, за которыми нам надо следить, просто добавьте такую же строчку, поменяв название службы, если необходимо следить еще за какой-нибудь службой. Временной интервал задается в формате ЧЧ:ММ:СС. Теперь описания каждого параметра:
Служба
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).