Windows 7 - Service Trigger. Тригери для служб.

У цій статті поговоримо про службах, що запускаються з триггеру (trigger start service), Нової функції, що вперше з'явилася в Windows 7. У принципі, служби, що запускаються з триггеру в Windows 7 - це звичайні служби, які можна налаштувати на зупинку або запуск по настанню будь-якого подій (це може бути відкриття порту, доступність ip адреси і т.д.). Перерахуємо доступні тригери, які можуть бути використані для настройки запуску служб в Windows 7 Service Trigger:

  • Відкриття / закриття порту на брандмауері
  • Підключення / відключення пристрою
  • Вхід або вихід з домену
  • Доступність / недоступність певного ip адреси
  • Зміна в групових політиках
  • Що настроюється подія - за допомогою програмного інтерфейсу windows ETW

Навіщо взагалі знадобився механізм служб, що запускаються з триггеру в Windows 7/2008 r2? Служби, що запускаються з триггеру потрібні для:

1) Збільшення швидкодії системи та оптимізації використання системних ресурсів. Адже будь-яка запущена служба (навіть якщо вона працює у фоновому режимі) споживаємо ресурси CPU і пам'яті, так навіщо ж витрачати дорогоцінні ресурси для служб, які в даний момент не потрібні?

2) Економія електроенергії. Як і в першому пункті йдеться про зменшення завантаження на CPU, і як наслідок зменшення споживання електроенергії (що особливо актуально для портативних пристроїв: ноутбуків, нетбуків, планшетів)

3) Збільшення стабільності роботи системи за рахунок зменшення кількості постійно запущених процесів (мається на увазі ймовірні витікаючи пам'яті в службах)

Познайомимося з технологію Service Trigger в Windows 7 ближче. Як приклад візьмемо службу "Computer Browser"(Оглядач мережі), яка за замовчуванням налаштована на ручний (manual) запуск, проте, як ми бачимо на скріншоті, в даний момент вона запущена.

Відкриємо командний рядок і наберемо в ній наступну команду:

SC qtriggerinfo BROWSER

Після виконання цієї команди можна побачити, що для служби Computer Browser налаштований сервісний тригер. Служба Computer Browser запуститься тільки після того, як відкриється наступні порти в брандмауері (139 TCP, 137 UDP, 138 UDP), і відключиться, як тільки зазначені порти будуть закриті.

Дану статтю я пишу на своєму ноутбуці, підключеному до інтернету за допомогою Wireless LAN, тому, якщо я відключений своє бездротове з'єднання, повинен перестати проходити будь-який мережевий трафік через брандмауер, і служба Computer Browser повинна відключитися автоматично. І дійсно, через 60 секунд після того, як я відключив Wireless LAN, служба "Обозревателя мережі" відключилася.

Потім я знову активував моє бездротове підключення, і в результаті спрацьовування тригера служби Computer Browser, вона знову запустилася.

Спробуємо подивитися інформацію про тригерах інший мережевий служби, DHCP:

SC qtriggerinfo DHCP

Як ви бачите, для даної служби немає жодного заданого тригера.