В любой многозадачной ОС есть механизм для запуска процессов, не взаимодействующих с пользователем (не интерактивных), т.е. работающих в фоновом режиме. В Unix-системах такие процессы называются демонами (от Daemon — дух, не путать с демоном:)), а в NT они носят имя сервисов, Win32-сервисов или служб.
В любой многозадачной ОС есть механизм для запуска процессов, не взаимодействующих с пользователем (не интерактивных), т.е. работающих в фоновом режиме. В Unix-системах такие процессы называются демонами (от Daemon — дух, не путать с демоном:)), а в NT они носят имя сервисов, Win32-сервисов или служб. Последний перевод слова Service в данном случае наиболее правильный, так как под сервисами в терминологии Microsoft подразумеваются также драйверы устройств. Данный механизм удобен для решения таких задач, как реализация клиент-серверного приложения, где сервер оформлен в виде службы (например, web-сервер). Службы состоят из трех частей: • Сервисное приложение (Service Application). Это, собственно, и есть служба. • Программа управления службой (Service Control Program, SCP). Данная программа позволяет запускать, останавливать, конфигурировать и осуществлять другие действия над службой. • Диспетчер управления службами (Service Control Manager, SCM). Посылает команды SCP непосредственно службе. Своего рода координатор работы служб. Ну, а теперь поговорим о каждом из этих компонентов подробнее. Служба Служба представляет собой обыкновенную Win32-программу, реализованную как GUI или консольное приложение. Единственное отличие — наличие кода для обработки команд от SCM и возврата ему статусной информации. У большинства служб нет пользовательского интерфейса, поэтому они реализуются как консольные приложения, но есть и интерактивные GUI службы. В состав любой NT включен большой набор стандартных служб. Многие из них по умолчанию отключены. Вы также можете добавить свои службы или даже запустить любую программу как службу с помощью таких утилит, как SvrAny. Каждая служба может быть запущена как отдельный процесс (точнее, поток в отдельном процессе) либо как поток в общем процессе, разделяя его с другими службами. Второй вариант имеет как преимущества, так и существенные недостатки. Наличие одного процесса вместо нескольких уменьшает нагрузку на систему (накладные расходы меньше), однако, если "навернется" одна служба, за ней "посыплются" и все остальные — общее адресное пространство, права доступа и ресурсы, да и "убить" можно только весь процесс целиком. Ряд стандартных служб работает именно по второй схеме, так что не удивляйтесь, обнаружив у себя в Диспетчере задач несколько процессов с именем svchost.exe — это стандартный разделяемый процесс для служб. Несколько особо важных служб работают в процессе SCM (services.exe) и серверном процессе локальной аутентификации (lsass.exe). SCM Диспетчер управления службами исполняется в процессе services.exe и является консольным Win32-приложением. Именно он отвечает за своевременный запуск, остановку и другие операции над службами, а также за взаимодействие SCP и служб. Это краеугольный камень реализации служб в NT-системе. SCP Программа управления службами является Win32-приложением, способным посылать команды SCM. Она может поставляться вместе со службой, реализуя дополнительные возможности администрирования. Также возможно использование стандартных SCP из комплекта ОС, таких, как GUI-оснастка Службы (Services) или консольная программа SC. С консольной SCP побалуйтесь сами, я же рассмотрю некоторые особенности реализации служб на примере управления ими с помощью оснастки Службы. Сначала надо ее запустить — например, из меню Пуск\Программы\Панель управления\Производительность и обслуживание\Администрирование\Службы (для русской XP). Вы увидите список служб, их состояние и другую информацию. Приведем для примера конфигурацию службы Telnet (удаленная консоль). Двойной щелчок левой кнопкой мышки по названию откроет окно свойств данной службы. Рассмотрим каждую закладку.
Общие Закладка Общие содержит следующие сведения: • Имя службы. • Выводимое имя ("понятное" имя, необязательный параметр). • Описание — комментарии по роду деятельности службы. • Исполняемый файл. • Тип запуска: Авто, Вручную, Отключено. При типе Авто служба запускается при загрузке машины; если стоит Вручную, то ее может запустить пользователь или программа; Отключено — запуск невозможен. • Состояние. Отображает состояние службы. Ниже находятся кнопки для управления работой службы. • Параметры запуска — параметры командной строки, передаваемые службе. Вход в систему На закладке Вход в систему отображаются 2 параметра: • Вход в систему — учетная запись, с правами которой служба будет работать в системе. Это важный параметр, так как определяет ресурсы, к которым будет иметь доступ служба. Служба может работать от имени системы, причем соответствующая галочка разрешает взаимодействие с рабочим столом, или от имени любой другой учетной записи — нужно лишь указать пароль и подтверждение. • Профили оборудования. Здесь разрешается или запрещается запуск службы для определенных профилей оборудования. Например, у вас есть ноутбук с док-станцией, причем последняя имеет сетевую карточку. Логично было бы создать 2 профиля: с и без док-станции. Соответственно все сетевые службы во втором случае не нужны, и их можно смело отключить для данного профиля, выиграв в производительности. Восстановление Все созданное человеком содержит ошибки. Они могут проявиться и в работе служб, поэтому в NT предусмотрен механизм восстановления функционирования служб после сбоя. Обратим свое внимание на закладку Восстановление.
• Действия при сбое службы — действия, которые должен выполнить компьютер при первом, втором и последующих сбоях службы. Поле может иметь следующие значения: Не выполнять никаких действий, Перезапуск службы, Запуск программы, Перезагрузка компьютера. В зависимости от выбранных вариантов могут стать активными другие поля. • Сброс счетчика ошибок — количество дней, после которых счетчик ошибок обнулится. • Перезапуск службы — интервал в минутах, после которого служба перезапустится. • Программа — имя программы, запускаемой после сбоя. • Параметры командной строки — параметры, предаваемые программе, запускаемой после сбоя. • Дописать в командную строку счетчик ошибок. Дает возможность запускаемой программе проанализировать, сколько раз служба сбоила. • Параметры перезагрузки компьютера: время в минутах, через которое произойдет перезагрузка, и сообщение, которое будет отправлено другим компьютерам сети. Зависимости Ряд служб зависит от других служб, драйверов и групп служб. Если не запустится служба — не запустятся и все зависимые от нее. Закладка Зависимости дает возможность проанализировать возможные конфликты на почве зависимости:). Здесь мы увидим 2 поля: • Служба зависит от следующих компонентов — список компонентов, от которых зависит служба. Если не загрузится один из них — служба не сможет запуститься. • Следующие компоненты зависят от службы — список компонентов, которые не смогут работать, если служба не запустится. Заключение Думаю, данного материала на первых порах хватит. Настраивая службы, можно добиться заметного повышения быстродействия. Главное — не перестараться с отключением всего подряд: обращайте внимание на зависимости и не балуйтесь с учетными записями. Данный материал почерпнут из мозга автора, а также из книг Федора Зубанова "Microsoft Windows 2000. Планирование, развертывание, управление" и Д. Соломона и М. Руссиновича "Внутреннее устройство Microsoft Windows 2000".
Имена служб Windows XP Отображаемое имя | Имя службы | Исполняемый файл | Оповещатель (Alerter) | Alerter | Svchost.exe | Служба шлюза уровня приложений (Application Layer Gateway Service) | ALG | Alg.exe | Управление приложениями (Application Management) | AppMgmt | Svchost.exe | Автоматическое обновление (Automatic Update) | Wuauserv | Svchost.exe | Фоновая интеллектуальная служба передачи (Background Intelligent Transfer Service) | BITS | Svchost.exe | Сервер папки обмена (ClipBook) | ClipSrv | Clipsrv.exe | Система событий COM+ (COM+ Event System) | EventSystem | Svchost.exe | Системное приложение COM+ (COM+ System Application) | COMSysApp | Dllhost.exe | Обозреватель компьютеров (Computer Browser) | Browser | Svchost.exe | Службы криптографии (Cryptographic Services) | CryptSvc | Svchost.exe | DHCP-клиент (DHCP Client) | Dhcp | Svchost.exe | Клиент отслеживания изменившихся связей (Distributed Link Tracking Client) | TrkWks | Svchost.exe | Координатор распределенных транзакций (Distributed Transaction Coordinator) | MSDTC | Msdtc.exe | DNS-клиент (DNS Client) | Dnscache | Svchost.exe | Служба регистрации ошибок (Error Reporting) | ERSvc | Svchost.exe | Журнал событий (Event Log) | Eventlog | Services.exe | Совместимость быстрого переключения пользователей (Fast User Switching Compatibility) | FastUserSwitching Compatibility | Svchost.exe | Факсы (Fax) | Fax | Fxsvc.exe | Справка и поддержка (Help And Support) | Helpsvc | Svchost.exe | Доступ к HID-устройствам (HID Input Service) | Hid Svc | Svchost.exe | Служба COM записи компакт-дисков IMAPI (IMAPI Burning COM Service) | ImapiService | Imapi.exe | Служба индексирования (Indexing Service) | Cisvc | Cisvc.exe | Брандмауэр Интернета (ICF)/Общий доступ к Интернету (Internet Connection Firewall(ICF)/Internet Connection Sharing (ICS)) | SharedAccess | Svchost.exe | Службы IPSEC (IPSEC Services) | PolicyAgent | Lsass.exe | Диспетчер логических дисков (Logical Disk Manager) | Dmserver | Svchost.exe | Служба администрирования диспетчера логических дисков (Logical Disk Manager Administrative Service) | Dmadmin | Dmadmin.exe | Служба сообщений (Messenger) | Messenger | Svchost.exe | MS Software Shadow Copy Provider | SwPrv | Dllhost.exe | Сетевой вход в систему (Net Logon) | NetLogon | Lsass.exe | NetMeeting Remote Desktop Sharing | Mnmsrvc | Mnmsrvc.exe | Сетевые подключения (Network Connections) | Netman | Svchost.exe | Служба сетевого DDE (Network DDE) | Net DDE | Netdde.exe | Диспетчер сетевого DDE (Network DDE DSDM) | NetDDEdsdm | Netdde.exe | Служба сетевого расположения (Network Location Awareness (NLA)) | Nla | Svchost.exe | Поставщик поддержки безопасности NT LM (NT LM Security Support Provider) | NtLmSsp | Lsass.exe | Журналы производительности и оповещения (Performance Logs And Alerts) | SysmonLog | Smlogsvc.exe | Plug And Play | PlugPlay | Services.exe | Серийный номер переносного медиа-устройства (Portable Media Serial Number) | WmdmPmSp | Svchost.exe | Диспетчер очереди печати (Print Spooler) | Spooler | Spoolsv.exe | Защищенное хранилище (Protected Storage) | ProtectedStorage | Lsass.exe | QoS RSVP | RSVP | Rsvp.exe | Диспетчер автоподключений удаленного доступа (Remote Access Auto Connection Manager) | RasAuto | Svchost.exe | Диспетчер подключений удаленного доступа (Remote Access Connection Manager) | RasMan | Svchost.exe | Диспетчер сеанса справки для удаленного рабочего стола (Remote Desktop Help Session Manager) | RDSessMgr | Sessmgr.exe | Удаленный вызов процедур (Remote Procedure Call (RPC)) | RpcSs | Svchost.exe | Локатор удаленного вызова процедур (Remote Procedure Call (RPC) Locator) | RpcLocator | Locator.exe | Удаленный реестр (Remote Registry) | RemoteRegistry | Svchost.exe | Съемные ЗУ (Removable Storage) | NtmsSvc | Svchost.exe | Маршрутизация и удаленный доступ (Routing And Remote Access) | RemoteAccess | Svchost.exe | Вторичный вход в систему (Secondary Logon) | Seclogon | Svchost.exe | Диспетчер учетных записей безопасности (Security Accounts Manager) | SamSs | Lsass.exe | Сервер (Server) | Lanmanserver | Svchost.exe | Определение оборудования оболочки (Shell Hardware Detection) | ShellHWDetection | Svchost.exe | Смарт-карты (Smart Card) | SCardSvr | Scardsvr.exe | Модуль поддержки смарт-карт (Smart Card Helper) | SCardDrv | Scardsvr.exe | Служба обнаружения SSDP (SSDP Discovery Service) | SSDPSRV | Svchost.exe | Уведомление о системных событиях (System Event Notification) | SENS | Svchost.exe | Служба восстановления системы (System Restore Service) | Srservice | Svchost.exe | Планировщик заданий (Task Scheduler) | Schedule | Svchost.exe | Модуль поддержки NetBIOS поверх TCP/IP (TCP/IP NetBIOS Helper) | LmHosts | Svchost.exe | Телефония (Telephony) | TapiSrv | Svchost.exe | Telnet | TlntSvr | Tlntsvr.exe | Службы терминалов (Terminal Services) | TermService | Svchost.exe | Темы (Themes) | Themes | Svchost.exe | Источник бесперебойного питания (Uninterruptible Power Supply) | UPS | Ups.exe | Узел универсальных PnP - устройств (Universal Plug And Play Device Host) | Upnphost | Svchost.exe | Диспетчер отгрузки (Upload Manager) | Uploadmgr | Svchost.exe | Теневое копирование тома (Volume Shadow Copy) | VSS | Vssvc.exe | Веб-клиент (WebClient) | WebClient | Svchost.exe | Windows Audio | AudioSrv | Svchost.exe | Служба загрузки изображений (WIA) (Windows Image Acquisition (WIA)) | Stisvc | Svchost.exe | Windows Installer | MSIServer | Msiexec.exe | Расширения драйверов WMI (Windows Management Instrumentation Driver Extensions) | Wmi | Svchost.exe | Служба времени Windows (Windows Time) | W32Time | Svchost.exe | Беспроводная настройка (Wireless Zero Configuration) | WZCSVC | Svchost.exe | Адаптер производительности WMI (WMI Performance Adapter) | WmiApSrv | Wmiapsrv.exe | Рабочая станция (Workstation) | Lanmanworkstation | Svchost.exe |
|