У цій статті поговоримо про службах, що запускаються з триггеру (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
Як ви бачите, для даної служби немає жодного заданого тригера.