Windows Service | это... Что такое Windows Service? (original) (raw)
Слу́жбы Windows (англ. Windows Service, сервисы) — приложения, автоматически запускаемые системой при запуске Windows и выполняющиеся вне зависимости от статуса пользователя. Имеет общие черты с концепцией демонов в Unix.
Содержание
- 1 Режимы работы
- 2 Фоновый режим
- 3 Запуск, остановка и изменение служб Windows
- 4 Права пользователя и особенности реализации
- 5 Ссылки
Режимы работы
В большинстве случаев службам запрещено взаимодействие с консолью или рабочим столом пользователей (как локальных, так и удалённых), однако для некоторых сервисов возможно исключение — взаимодействие с консолью (сессией с номером 0, в которой зарегистрирован пользователь локально или при запуске службы mstsc с ключом /console).
Существует несколько режимов для Сервисов:
- запрещён к запуску;
- ручной запуск (по запросу);
- автоматический запуск при загрузке компьютера;
- автоматический (отложенный) запуск (введён в Windows Vista и Windows Server 2008);
- обязательный сервис/драйвер (автоматический запуск и невозможность (для пользователя) остановить сервис).
Фоновый режим
Windows предлагает программу Service Control Manager, с её помощью можно управлять созданием, удалением, запуском и остановкой служб. Приложение, имеющее статус сервиса, должно быть написано таким образом, чтобы оно могло принимать сообщения от Service Control Manager. Затем, одним или несколькими вызовами API, имя службы и другие атрибуты, такие, как его описание, регистрируются в Service Control Manager.
Запуск, остановка и изменение служб Windows
Службы и их атрибуты могут быть изменены в консоли управления MMC:
Панель управления Windows -> «Administrative Tools» -> «Services».
Управление запуском служб при старте Windows
Список служб находится в ветке Реестра Windows «HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services». Значения параметра «Start» имеют тип «REG_DWORD» и могут принимать значения:
0 - Низкоуровневые драйверы, например драйверы дисков, которые загружаются на самом раннем этапе загрузки – загрузки ядра;
1 - Драйверы, которые загружаются после инициализации ядра ОС;
2 - Службы, которые должны быть загружены Диспетчером Управления Сервисами (равен параметру - "Авто");
3 - Службы, запускаемые Диспетчером Управления Сервисами, только в случае получения явной инструкции на загрузку (равен параметру - "Вручную");
4 - Службы, которые не загружаются (равен параметру - "Отключено").
Управление работой служб из командной строки
Управление службами возможно с помощью командной строки: остановка службы — «net stop service_name », запуск службы — «net start service_name ». Например, запуск службы «Диспетчер очереди печати» — «net start spooler».
Удаление службы: «sc delete „_Имя службы_“ » (кавычки необходимы, если имя службы содержит пробелы). С удалением нужно быть предельно осторожным, так как удалённую службу вернуть назад очень и очень трудно.
Установка режима запуска службы: «**sc config „_Имя службы_“ start= параметр запуска**». Параметры запуска: auto (автоматически), demand (вручную), disabled (отключена).
Права пользователя и особенности реализации
Сервисы Windows по умолчанию запускаются от имени пользователя «_LocalSystem_», который обладает полными правами в системе (превосходящими права даже учётной записи «_Administrator_»). Рабочим каталогом будет каталог Windows (определяется переменной «WinDir», которая обычно равна «_C:\WINNT_» или «_C:\WINDOWS_»), а каталог для хранения временных файлов будет «%WinDir%\TEMP».
Поскольку это не настоящий пользователь, а «системный», то появляются некоторые трудности, когда приложению необходимо сохранить данные, относящиеся к пользователю (user-specific data), поскольку домашней директории этого пользователя не существует.
Важно также то, что в случае если служба работает от имени локального пользователя (реальный пользователь созданный для служебных целей) если пароль такого пользователя изменён, сервис не будет запускаться до тех пор, пока пароль для сервиса тоже не будет изменен.
Ссылки
- MSDN Знакомство со служебными приложениями Windows
- Microsoft’s MSDN Library Documentation on Services
- INSTSRV.EXE is a Windows resource kit program that allows you to install an arbitrary application as a service
- SrvAny and InstSrv Tutorial with many Screenshots
- pcs.suite101.com/article.cfm/index_of_services: Index of Windows XP Services — An Index of the Services running on Windows XP operating system
- [1] Как удалить службу в Windows Vista или Windiws XP
- Программа для оптимизации служб Windows XP
Wikimedia Foundation.2010.