Windows Service
За информацията в тази статия или раздел не са посочени източници. Въпросната информация може да е непълна, неточна или изцяло невярна. Имайте предвид, че това може да стане причина за изтриването на цялата статия или раздел. Шаблонът е поставен на 12:04, 10 август 2015 (UTC). |
В операционните системи от семейството на Microsoft Windows Windows сервиз или услуга е изпълним файл, който е разработен така, че да не изисква намеса от потребителя (няма потребителски интерфейс). Windows сервиз може да се конфигурира както да бъде стартиран веднага след boot на операционната система и да работи във фонов режим докато Windows работи, така и ръчно пуснат, по команда от потребителя. Концепцията е подобна на Unix daemon-ните. Много от сервизите могат да бъдат намерени в списъка от процеси в Windows Task Manager, като най-често са изпълнявани в контекста на потребителите SYSTEM, LOCAL SERVICE, NETWORK SERVICE, но не всички процеси, работещи под SYSTEM акаунта са сервизи. Останалите сервизи работят посредством системния процес svchost.exe като DLL-и, заредени в паметта.
Организация и управление
[редактиране | редактиране на кода]След като сервиза бива инсталиран, може да бъде управляван от Services.msc конзолата (Control Panel > Administrative Tools). Конзолата предоставя кратко описание на всеки сервиз, пътя до изпълнимия файл, текущия статус, типа на стартиране, както и зависимости на потребителя. Диалога на сервиза позволява следните операции:
- Старт, стоп, пауза, рестартиране на сервиза
- Дефиниране на параметрите на сервиза
- Смяна на типа на стартиране (Automatic, Automatic Delayed, Manual, Disabled)
- Дефиниране на потребителя, в контекста на който ще работи сервиза
- Дефиниране на настройките при отказ (failure).
Разработка на Windows Service
[редактиране | редактиране на кода]Всяка среда за разработка на приложения под Windows може да бъде използвана за разработка на сервиз, но разработването е коренно различно в зависимост от това дали той бива имплементиран на например на C++ или на .NET. Самия сервиз и неговите ресурси се менажират напълно от специален модул на Windows – Service Control Manager, а обръщенията към потребителския код се извършват посредством callback функции, подадени на Win32 Service API. За да може определено приложение да работи като сервиз, то трябва да имплементира операциите (съобщенията), изисквани от Service Control Manager, например стартиране, паузиране и стопиране. За да заработи сервиза в няколко API извиквания той се регистрира пред Service Control Manager, като подава и нужните си за работа атрибути.