- Сервисы Windows
- Содержание
- Режимы работы
- Фоновый режим
- Запуск, остановка и изменение служб Windows
- Управление запуском служб при старте Windows
- Управление работой служб из командной строки
- Права пользователя и особенности реализации
- Ссылки
- Смотреть что такое «Сервисы Windows» в других словарях:
- Службы Windows
- Программа службы
- Диспетчер управления службами
- Главная функция, главная служебная функция и обработчики
- Программа для управления службой
- Программа для конфигурирования службы
- Службы Windows
- Содержание
- Режимы работы
- Фоновый режим
- Запуск, остановка и изменение служб Windows
- Управление запуском служб при старте Windows
- Управление работой служб из командной строки
- Права пользователя и особенности реализации
- Список служб
Сервисы Windows
Слу́жбы Windows (англ. Windows Service , сервисы) — приложения, автоматически запускаемые системой при запуске Windows и выполняющиеся вне зависимости от статуса пользователя. Имеет общие черты с концепцией демонов в Unix.
Содержание
Режимы работы
В большинстве случаев службам запрещено взаимодействие с консолью или рабочим столом пользователей (как локальных, так и удалённых), однако для некоторых сервисов возможно исключение — взаимодействие с консолью (сессией с номером 0, в которой зарегистрирован пользователь локально или при запуске службы mstsc с ключом /console).
Существует несколько режимов для Сервисов:
- запрещён к запуску;
- ручной запуск (по запросу);
- автоматический запуск при загрузке компьютера;
- автоматический (отложенный) запуск (введён в Windows Vista и Windows Server 2008);
- обязательный сервис/драйвер (автоматический запуск и невозможность (для пользователя) остановить сервис).
Фоновый режим
Windows предлагает программу Service Control Manager, с её помощью можно управлять созданием, удалением, запуском и остановкой служб. Приложение, имеющее статус сервиса, должно быть написано таким образом, чтобы оно могло принимать сообщения от Service Control Manager. Затем, одним или несколькими вызовами API, имя службы и другие атрибуты, такие, как его описание, регистрируются в Service Control Manager.
Запуск, остановка и изменение служб Windows
Службы и их атрибуты могут быть изменены в консоли управления MMC:
Управление запуском служб при старте Windows
Список служб находится в ветке Реестра Windows «HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services». Значения параметра «Start» имеют тип «REG_DWORD» и могут принимать значения:
Управление работой служб из командной строки
Управление службами возможно с помощью командной строки: остановка службы — «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 .
Смотреть что такое «Сервисы Windows» в других словарях:
Windows Azure — Разработчик Microsoft Семейство ОС Windows … Википедия
Сервисы Microsoft Windows для UNIX — (англ. Microsoft Windows Services for UNIX, SFU) программный пакет, разработанный компанией Microsoft, обеспечивающий подсистему UNIX на системах класса Windows NT (в том числе и более поздних). Данная подсистема называется Interix.… … Википедия
Сервисы для UNIX — Сервисы Microsoft Windows для англ. Microsoft Windows Services for UNIX, SFU) программный пакет, разработанный компанией Windows NT (в том числе и более поздних). Данная подсистема называется Interix. Содержание 1 Состав 2 Версии … Википедия
Windows Services for UNIX — Сервисы Microsoft Windows для англ. Microsoft Windows Services for UNIX, SFU) программный пакет, разработанный компанией Windows NT (в том числе и более поздних). Данная подсистема называется Interix. Содержание 1 Состав 2 Версии … Википедия
Windows Services for Unix — Сервисы Microsoft Windows для англ. Microsoft Windows Services for UNIX, SFU) программный пакет, разработанный компанией Windows NT (в том числе и более поздних). Данная подсистема называется Interix. Содержание 1 Состав 2 Версии … Википедия
Windows Service — Службы Windows (англ. Windows Service, сервисы) приложения, автоматически запускаемые системой при запуске Windows и выполняющиеся вне зависимости от статуса пользователя. Имеет общие черты с концепцией демонов в Unix. Содержание 1 Режимы работы … Википедия
Windows Live SkyDrive — Тип Облачное хранилище данных Автор Microsoft Разработчик Microsoft … Википедия
Windows Open Services Architecture — (WOSA) концепция стандартных интерфейсов, совокупность методов абстракции базовых служб, одна из основ архитектуры операционной системы Microsoft Windows. Open Services Architecture для любого расширения операционной системы определяет… … Википедия
Windows Phone — Windows Phone … Википедия
Windows Mail — в Windows Vista (режим просмотра нежелательной почты) Тип Почтовая программа, клиент Microsoft ОС … Википедия
Службы Windows
Службы Windows представляют собой такие приложения, которые могут автоматически запускаться при загрузке операционной системы. Они могут функционировать и без осуществления пользователем интерактивного входа в систему и производить в фоновом режиме какие-то операции по обработке.
Например, на сервере Windows Server сетевые службы системы позволяют клиентам получать к ним доступ без прохождения пользователем процедуры регистрации на сервере, а в клиентских системах службы позволяют загружать новую версию программного обеспечения из Интернета или выполнять очистку файлов на локальном диске.
Службы Windows можно сконфигурировать так, чтобы они выполнялись от имени специально созданной учетной записи пользователя или от имени учетной записи системы, т.е. учетной записи, которая имеет более высокие привилегии, чем учетная запись администратора системы. В дальнейшем изложении, если не указано иначе, то при упоминании службы имеется в виду именно служба Windows. • Ниже приведено несколько примеров служб Windows:
Простой компонент TCP/IP Services (Службы TCP/IP)
Представляет собой служебную программу, которая обслуживает небольшие серверы TCP/IP: отображение (echo), дата и время (daytime), цитаты (quote) и т.п.
Компонент World Wide Publishing Service (Служба WWW)
Представляет собой одну из служб информационного сервера Интернета (Internet Information Server — IIS).
Компонент Event Log (Журнал событий)
Представляет собой службу для регистрации сообщений в системе регистрации событий.
Компонент Windows Search (Поиск Windows)
Представляет собой службу, которая создает индексы данных на диске.
Для просмотра всех служб, имеющихся в системе, предусмотрен инструмент администрирования под названием Services (Службы), окно которого показано на рисунке. Этот инструмент доступен в разделе Administrative Tools (Администрирование).
Для оперирования службой Windows необходимы три программы следующего типа:
программа для управления службой;
программа для конфигурирования службы.
Программа службы предоставляет действительную функциональность. Программа для управления службой позволяет отправлять службе запросы, касающиеся управления, например, запросы на запуск, останов, приостановку и возобновление ее работы.
Программа для конфигурирования службы позволяет устанавливать службу — она выполняет необходимое копирование в файловую систему, вносит соответствующие записи в системный реестр и настраивает результат как службу. Хотя компоненты .NET и могут устанавливаться с помощью просто команды хсору, поскольку им не обязательно записывать информацию о себе в системный реестр, установка служб требует выполнения соответствующей настройки в системном реестре. Программа для конфигурирования службы может применяться и для изменения конфигурации данной службы в более позднее время.
О каждом из этих трех составляющих службы Windows более подробно рассказывается в следующих подразделах.
Программа службы
Прежде чем рассматривать реализацию служб в .NET, давайте в общем посмотрим, как выглядит архитектура служб Windows и их внутренняя функциональность.
За реализацию функциональных возможностей отвечает программа службы. Она должна состоять из трех частей:
главная служебная функция;
Для начала следует ознакомиться с диспетчером управления службами — Service Control Manager (SCM). Этот диспетчер играет важную роль для служб. Именно он отправляет службам запросы на выполнение запуска или остановки.
Диспетчер управления службами
представляет собой часть операционной системы, которая взаимодействует со службами. На рисунке это взаимодействие показано на диаграмме последовательностей:
Во время загрузки системы запускается каждый процесс, для которого настроен автоматический запуск службы, и вызывается его главная функция. Служба отвечает за регистрацию главных служебных функций для всех своих составляющих. Главная функция служит точкой входа в программу службы и в ней с помощью SCM должны регистрироваться точки входа для всех ее главных служебных функций.
Главная функция, главная служебная функция и обработчики
Главная функция службы представляет собой обычную точку входа в программу, т.е. метод Main(). В ней может регистрироваться более одной главной служебной функции. В главной служебной функции содержится сама функциональность службы. Служебная программа должна регистрировать главную служебную функцию для каждой из предоставляемых ею служб. Одна служебная программа может предоставлять множество служб; например, \system32\services.ехе представляет собой служебную программу, которая включает помимо прочих элементов такие службы, как Alerter, Application Management, Computer Browser и DHCP Client.
Далее диспетчер SCM вызывает главные служебные функции каждой из подлежащих запуску служб. Одной из важнейших задач главной служебной функции является регистрация обработчика в SCM.
Функция-обработчик представляет собой третью часть служебной программы. Она должна обязательно уметь отвечать на события SCM. Работа служб может останавливаться, приостанавливаться и возобновляться, и обработчик должен обязательно быть способен реагировать на все такие события.
После регистрации обработчика в SCM программа для управления службой может начинать посылать SCM запросы на завершение, приостановку и возобновление работы службы. Эта программа не зависит ни от SCM, ни от самой службы. В операционной системе поставляется множество подобных программ; одной из них является, например, оснастка Services (Службы) консоли ММС, упомянутая ранее. Можно также писать собственные программы для управления службами; хороший пример — приложение SQL Server Configuration Manager (Диспетчер настройки сервера SQL).
Программа для управления службой
Программа для управления службой, как не трудно догадаться по ее названию, позволяет управлять службой. Для завершения, приостановки и возобновления работы службы ей могут посылаться соответствующие управляющие коды, и обработчик должен на них реагировать. Можно также запрашивать текущее состояние службы и реализовать специальный код обработки, способный реагировать на специальные управляющие коды.
Программа для конфигурирования службы
Из-за того, что службы должны настраиваться соответствующим образом в системном реестре, применять для их установки команду хсору нельзя. В системном реестре содержится параметр, отвечающий за то, как должна запускаться служба. Он может быть настроен так, чтобы служба запускалась автоматически или вручную либо вообще была отключена. Также необходимо настраивать пользователя служебной программы и зависимости службы, например, другие службы, которые должны запускаться перед запуском данной.
Все эти настройки производятся в программе для конфигурирования службы. Эта программа может использоваться как в программе установки для первоначальной настройки службы, так и позже для изменения ее конфигурационных параметров.
Классы, с помощью которых можно реализовать три описанных составляющих службы, находятся в пространстве имен System.ServiceProcess:
Класс ServiceBase
Является главным классом, от которого должно осуществляться наследование для реализации службы. Этот класс применяется для регистрации службы и ответа на запросы, касающиеся ее запуска и остановки.
Класс ServiceController
Позволяет реализовать программу для управления службой. С помощью этого класса можно отправлять службам запросы.
Классы ServiceProcessInstaller и ServiceInstaller
Как не трудно догадаться по их именам, позволяют устанавливать и конфигурировать программы служб.
Теперь можно переходить к рассмотрению процесса создания новой службы.
Службы Windows
Слу́жбы ОС Windows (англ. Windows Service , службы) — приложения, автоматически (если настроено) запускаемые системой при запуске Windows и выполняющиеся вне зависимости от статуса пользователя. Имеет общие черты с концепцией демонов в Unix.
Содержание
Режимы работы
В большинстве случаев службам запрещено взаимодействие с консолью или рабочим столом пользователей (как локальных, так и удалённых), однако для некоторых служб возможно исключение — взаимодействие с консолью (сессией с номером 0, в которой зарегистрирован пользователь локально или при запуске службы mstsc с ключом /console).
Существует несколько режимов для служб:
- запрещён к запуску;
- ручной запуск (по запросу);
- автоматический запуск при загрузке компьютера;
- автоматический (отложенный) запуск (введён в Windows Vista и Windows Server 2008);
- обязательная служба/драйвер (автоматический запуск и невозможность (для пользователя) остановить службу).
Фоновый режим
Windows предлагает диспетчер управления службами (Service Control Manager — SCM), с помощью которого можно управлять созданием, удалением, запуском и остановкой служб. Приложение, имеющее статус службы, должно быть написано таким образом, чтобы оно могло принимать сообщения от SCM. Затем имя службы и её другие атрибуты, например, описание службы, регистрируются в диспетчере управления при помощи одного или нескольких вызовов API.
Запуск, остановка и изменение служб Windows
Службы и их атрибуты могут быть изменены в консоли управления MMC:
Управление запуском служб при старте 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 (отключена).
Режим просмотра состояния службы: sc qc «Имя службы« .
Права пользователя и особенности реализации
Службы Windows по умолчанию запускаются от имени пользователя «LocalSystem», который обладает полными правами в системе (превосходящими права даже учётной записи «Administrator»). Рабочим каталогом будет каталог Windows (определяется переменной WinDir , которая обычно равна C:\WINNT или «C:\WINDOWS»), а каталог для хранения временных файлов будет «%WinDir%\TEMP».
Поскольку это не настоящий пользователь, а «системный», то появляются некоторые трудности, когда приложению необходимо сохранить данные, относящиеся к пользователю (user-specific data), поскольку домашнего каталога этого пользователя не существует.
Важно также то, что в случае, если служба работает от имени локального пользователя (реальный пользователь, созданный для служебных целей), если пароль такого пользователя изменён, служба не будет запускаться до тех пор, пока пароль для службы тоже не будет изменён.
Список служб
Это неполный список известных служб в операционных системах Windows (Достаточно полный список служб Windows можно посмотреть на OSzone.net).
В различных версиях операционных систем могут присутствовать одни службы и отсутствовать другие. Некоторые приложения и программы, устанавливаемые отдельно, также могут создавать свои службы.