Службы Windows необходимы для функционирования операционной системы и прикладных программ. В Windows существуют десятки служб, которые обеспечивают выполнение множества системных операций. Диапазон их действия - от регистрации пользователей до работы с файлами и принтерами и поддержки унаследованных программ. В первой части статьи будет рассказано о службах и их назначении, а также об инструментах и методах управления ими. Я рассматриваю службы, реализованные в Windows 2000 Server, Standard Edition, без пакетов исправлений (прочие серверные продукты Windows 2000 и Windows 2000 Professional располагают другим набором служб).

Что такое служба?

Архитектура Windows NT всегда основывалась на модели служб (операционных модулях, инкапсулирующих конкретные функции системы). Например, служба Indexing Service операционной системы Windows 2000 содержит весь скомпилированный код и все интерфейсы, необходимые для индексации информации на сервере. Indexing Service может служить основой для других приложений и использоваться ими для дальнейшего расширения функциональности. В данном случае речь идет о реализованной в Microsoft SQL Server 2000 функции поиска в различных хранилищах, которая использует Indexing Service для поиска данных в файлах и каталогах, в Internet, SQL Server и даже в хранилище Microsoft Exchange Server Web Store.

Функциями, аккуратно «упакованными» в отдельных службах, легче управлять и проще пользоваться. Такая изоляция позволяет более тщательно контролировать выполнение задач и готовность операционной системы и приложений, упрощает поиск неисправностей и доступ к системной информации (например, данные о параметрах сети и производительности).

Службы управляются центральным компонентом операционной системы Service Controller (файл services.exe в каталоге winntsystem32). Запущенные службы можно найти на закладке Processes в диалоговом окне Task Manager. Служба может быть прикладной программой или отдельным компонентом такого сервера приложений, как SQL Server или Exchange. Например, при установке Exchange загружается новый комплект служб, обеспечивающих возможность пересылки сообщений и групповой работы. Даже приложение пользователя или настольного компьютера можно запустить как системную службу.

Администрирование служб

Управлять службами на машине Windows 2000 Server довольно просто. Нужно зарегистрироваться в качестве администратора или с учетной записью из группы Administrators, члены которой могут изменять параметры службы. Оснастка Computer Manage-ment консоли Microsoft Management Console (MMC) обеспечивает полный контроль над атрибутами службы и позволяет узнать ее статус. Для доступа к оснастке Computer Management нужно щелкнуть на кнопке Start и выбрать пункты меню Services, Programs, Administrative Tools или щелкнуть правой кнопкой мыши на пиктограмме My Computer на рабочем столе и выбрать пункт Manage. В окне Computer Management (см. Экран 1) следует развернуть контейнер Services and Appli-cations и щелкнуть на Services. В правой панели появится список всех имеющихся в системе служб независимо от того, активны они или нет.

Экран 1. Просмотр системных служб.

Если щелкнуть на имени службы правой кнопкой мыши, на экране появится список задач, описанных в Таблице 1. Запустить, остановить, сделать паузу или перезапустить каждую службу можно с помощью соответствующего пункта меню. Достаточно выбрать службу и щелкнуть на ее пиктограмме.

По умолчанию, для каждой инсталлированной службы отображается пять колонок информации на консоли Computer Management: Name (имя), Description (описание), Status (состояние), Startup Type (тип запуска) и Log on as (зарегистрирована как). Однако, выбрав пункт Choose Columns из меню View, конфигурацию консоли Computer Management можно настроить. В диалоговом окне можно выбрать данные, которые следует отображать на консоли.

Экран 2. Окно общих свойств службы.

Чтобы увидеть свойства службы, нужно дважды щелкнуть на имени службы или нажать правую кнопку мыши и выбрать пункт Properties из контекстного меню. На Экране 2 показано диалоговое окно Properties для службы Fax Service. Возможности, перечисленные в диалоговом окне, значительно шире тех, что предоставлялись в NT 4.0. На закладке General нельзя переименовать службу, но можно изменить выводимое имя и описание, упорядочив службы в управляющем интерфейсе так, чтобы их было проще распознавать и использовать. На закладке General также показан путь к исполняемому файлу службы. Fax Service - автономный исполняемый файл, запускаемый системой в качестве службы. Другие системные службы, такие, как Alerter, входят в состав ядра Windows и модуля Service Controller операционной системы. В раскрывающемся списке Startup type на закладке General можно задать режим загрузки службы (ручной или автоматический) или отключить ее. Описание этих режимов дано в Таблице 2. Управляя работой Fax Service, можно присваивать параметру Service status значения Start, Stop, Pause (пауза) или Resume (возобновить). В текстовом окне Start parameters можно указать параметры запуска, которые система должна передавать службе в процессе загрузки, например сведения о местонахождении файлов и управляющие атрибуты.

Экран 3. Параметры учетной записи службы.

Закладка Log On диалогового окна Properties (см. Экран 3) обеспечивает управление атрибутами безопасности службы. На этой закладке можно выбрать атрибут безопасности, определив диапазон функционирования службы и любых связанных с ней приложений в системе. Поэтому при настройке параметров на данной закладке необходимо проявлять осторожность. По умолчанию, при регистрации и выполнении служб используются атрибуты безопасности учетной записи LocalSystem (уникальная системная учетная запись, локальная для сервера, не обеспечивающая доступа при интерактивной регистрации и по сети). Сходство учетных записей Local-System и Administrator заключается в том, что обе находятся в ведении операционной системы. Благодаря этому служба располагает необходимыми для работы правами доступа. Службу можно настроить для работы с учетной записью пользователя, созданной для определенных целей, например централизованного управления какими-либо программами (так, можно создать учетную запись для Exchange_Server, используемую только службами Ex-change Server и связанную с конкретными пользовательскими правами и политиками). На закладке Log On можно связать параметры запуска служб с аппаратными профилями, указав приложения и службы, выполняемые в различных аппаратных конфигурациях. Например, специальный профиль обслуживания для загрузки сервера в минимальной конфигурации с отключением всех периферийных устройств, дисковой памяти и соответствующих системных служб позволяет без помех устанавливать и модернизировать прикладные программы.

Экран 4. Свойства восстановления службы.

Функции на закладке Recovery - новшество Windows 2000. В случае отказа службы NT 4.0 администратор может лишь попытаться отыскать сведения о причинах сбоя в журналах событий. Решить проблему можно только с помощью дополнительных инструментов управления. На закладке Recovery имеется раскрывающийся список действий, которые система может предпринять после первого, второго и последующих отказов службы (см. Экран 4). Возможны четыре варианта действий: не предпринимать ничего, перезапустить службу, запустить специальный файл и перезагрузить компьютер. Правильный выбор позволяет сделать сервер до некоторой степени «самовосстанавливающимся». Например, если по какой-то причине служба Fax Service с конфигурацией, заданной на Экране 4, остановится, то сначала сервер попытается перезапустить ее. После второго отказа сервер запустит файл приложения, которое пошлет предупреждение на пейджер системному администратору. При следующем отказе службы система перезагружается.

Экран 5. Настройка параметров Restart Computer Options.

Закладка Recovery также обеспечивает доступ к атрибуту, сбрасывающему счетчик отказов, чтобы он не зациклился. Кроме того, можно задать время ожидания сервера перед перезапуском службы. Если щелкнуть на кнопке Restart Computer Options, появится диалоговое окно (см. Экран 5), где можно указать действия, которые следует выполнить в процессе автоматической перезагрузки системы.

Экран 6. Зависимости службы.

На закладке Dependencies показаны как службы, от которых зависит функционирование выбранной службы, так и зависимые службы. На Экране 6 видно, что для функционирования Fax Service необходимы, наряду с другими, службы Plug-and-Play и Print Spooler, но в настоящее время ни одна служба или прикладная программа не зависит от Fax Service.

С помощью некоторых системных программ управления можно дистанционно управлять службами (например, перезапустить отказавшую прикладную службу через коммутируемое соединение). Эти полезные функции реализованы во многих системных инструментах управления и внешних управляющих программах, а также в комплекте ресурсов Microsoft Windows 2000 Resource Kit.

Службами можно управлять и из командной строки. Передать службе параметры и контролировать ее работу можно с помощью команд Net Start и Net Stop. Из командной строки можно запускать начальные и завершающие сценарии для одновременного управления несколькими службами или командные файлы, перезапускающие несколько служб после сбоя.

Когда необходимо действовать

Почему иногда важно узнать или изменить параметры службы? Как видно из следующих примеров, выяснить статус системных служб и предпринять соответствующие действия требуется во многих ситуациях.

Ошибка при выполнении службы или приложения. Если в журнал событий внесено сообщение об ошибке, получено предупреждение о системной ошибке или приложение работает некорректно, то необходимо перейти к инструменту управления службами, о котором было рассказано в предыдущем разделе.

Если необходимо, чтобы вступили в силу изменения конфигурации. Иногда для изменения параметров службы или сетевых параметров сервера требуется перезапустить всю систему или, по крайней мере, службу. С помощью заданий службы можно вручную останавливать и перезапускать, чтобы изменения вступили в силу без перезагрузки системы.

Требуется провести диагностику. Если на сервере возникли проблемы, то удобный способ поиска причины неполадок - закрывать службы одну за другой, до тех пор пока не будет обнаружена служба, вызывающая сбои. Или можно закрывать прикладные службы до тех пор, пока не будет установлено, какая из них стала причиной неисправностей.

Необходимо подкорректировать работу системы. С помощью инструмента управления службами можно контролировать доступ к серверу, закрыв сетевые службы аутентификации, изменив параметры безопасности службы или активизируя и блокируя приложения.

Необходимо закрыть службы, чтобы установить прикладные программы или модернизировать систему. Иногда инструмент управления службами используется для того, чтобы закрыть службы и инсталлировать различные приложения или новые системные модули. Например, прежде чем обновить службу Microsoft Data Access Component (MDAC), необходимо завершить работу всех служб, использующих ODBC.

Требуется инсталлировать новые службы или приложения. Иногда перед установкой некоторых приложений, служб и новых системных модулей необходимо остановить какое-нибудь серверное приложение. Например, перед модернизацией MDAC нужно закрыть все службы, зависимые от ODBC.

Установка и удаление служб

Если инсталлировать, а затем удалить приложения на системах, работающих с версиями Windows, выпущенными до появления Windows 2000, то после деинсталляции в системе обязательно остаются небольшие программные фрагменты. С появлением Windows 2000 положение изменилось, так как операционная система значительно строже контролирует компоненты приложений и их программный код. В результате можно свести к минимуму число нефункционирующих служб в системе, используя собственный инструментарий компоновки и проектирования Windows 2000.

Во многих случаях приложения самостоятельно управляют своими компонентами, настраивая и создавая новые службы по мере необходимости. Если воспользоваться собственной программой установки прикладной программы, то, как правило, удается удалить все ее компоненты. Однако если после установки изменилась конфигурация приложения, то, возможно, придется вручную вернуть программу в исходное состояние, прежде чем ее можно будет удалить.

В Windows 2000 для установки и удаления приложений, сетевых служб и служб данных используется утилита Add/Remove Programs из панели управления. И я настоятельно рекомендую не пытаться вручную удалить службу, отыскав ее программный код в каталоге winnt. Эта операция может отрицательно повлиять на работу сервера. Альтернативное решение - Resource Kit, предлагающий набор инструментов, которые можно использовать для управления службами. В Таблице 3 приведен список инструментов Re-source Kit, предназначенных для управления системными и прикладными службами.

В комплекте ресурсов имеются версии инструментов управления службами, запускаемые из командной строки, с помощью которых можно устанавливать и удалять исполняемые файлы службы, но только на локальной машине. Кроме того, при работе с этими инструментами необходимо запускать службы и устанавливать их атрибуты с помощью утилиты Service Controller (sc.exe). Service Installation Wizard - утилита с графическим интерфейсом, с помощью которой можно установить службу, запустить ее и назначить ей атрибуты (и все это с помощью одного интерфейса, даже на удаленных серверах). Однако данный инструмент следует использовать только с приложениями и службами, не имеющими собственной программы установки/удаления.

Инструмент Srvany из комплекта ресурсов позволяет запустить пользовательское приложение или другую программу Windows как системную службу (некоторые приложения инсталлируются в качестве системных служб, другие приходится принудительно запускать в этом режиме). Запуская приложения Windows в качестве системных служб, можно автоматически загружать их в процессе начальной загрузки сервера, без регистрации от имени пользователя. Первоначально необходимо провести тестирование на нерабочей системе - некоторые приложения не смогут корректно функционировать в режиме службы. Прикладная программа будет выполняться в фоновом режиме, независимо от атрибутов безопасности текущего пользователя. В комплекте ресурсов содержатся рекомендации по установке и использованию Srvany. Чтобы поближе познакомиться с инструментами комплекта ресурсов Resource Kit, следует приобрести комплект и внимательно изучить справочные файлы и документацию по ядру Windows 2000.

Изучение основ

Время, потраченное на освоение служб Windows 2000 Server и знакомство с вспомогательными инструментами управления службами, не пропадет даром. Эти знания помогут проанализировать принимаемую по умолчанию конфигурацию служб Windows 2000 и подобрать оптимальный режим работы сервера.

(Продолжение следует.)

Джордан Айала - один из авторов Windows 2000 Magazine. Он имеет сертификат MCP и работает в качестве независимого консультанта в Сиэттле. С ним можно связаться по адресу: jordanayala@hotmail.com.