NT club. Часть 8. Службы
NT club. Часть 8. Службы
— Я не бездействовал. Я сразу на капку нажал — Скрипач свидетель. Всем постам, гадюшник с колесиками сюда, в ку.
(с) "Кин-Дза-Дза"
Вдогонку
Хотелось бы дополнить предыдущую статью о файловых системах следующей полезной информацией.
Во-первых, имена файлов в NTFS хранятся в 2-байтовой кодировке Unicode, что автоматически означает возможность называть файлы на любом языке, хоть на китайском (лишь бы шрифт соответствующий был), и не нуждаться в переключении кодовой страницы для их (имен) правильного отображения.
Во-вторых, советую интересующимся поэкспериментировать с командой FSUTIL, которая позволяет управлять разреженными файлами, жесткими связями и т.д., и MOUNTVOL — управление точками переопределения (точки повторной обработки). Об NTFS мы, возможно, подробнее поговорим позднее.
Ну, а сейчас перейдем к другой важной особенности NT-систем — службам.
Служу Советскому Союзу!
В любой многозадачной ОС есть механизм для запуска процессов, не взаимодействующих с пользователем (не интерактивных), т.е. работающих в фоновом режиме.
В Unix-системах такие процессы называются демонами (от Daemon — дух, не путать с демоном:)), а в NT они носят имя сервисов, Win32-сервисов или служб.
Последний перевод слова Service в данном случае наиболее правильный, так как под сервисами в терминологии Microsoft подразумеваются также драйверы устройств. Данный механизм удобен для решения таких задач, как реализация клиент-серверного приложения, где сервер оформлен в виде службы (например, web-сервер).
Службы состоят из трех частей:
• Сервисное приложение (Ser-vice 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 (удаленная консоль).
Двойной щелчок левой кнопкой мышки по названию откроет окно свойств данной службы. Рассмотрим каждую закладку.
Общие
Закладка Общие (рис.1) содержит следующие сведения:
• Имя службы.
• Выводимое имя ("понятное" имя, необязательный параметр).
• Описание — комментарии по роду деятельности службы.
• Исполняемый файл.
• Тип запуска: Авто, Вручную, Отключено. При типе Авто служба запускается при загрузке машины; если стоит Вручную, то ее может запустить пользователь или программа; Отключено — запуск невозможен.
• Состояние. Отображает состояние службы. Ниже находятся кнопки для управления работой службы.
• Параметры запуска — параметры командной строки, передаваемые службе.
Вход в систему
На закладке Вход в систему (рис.2) отображаются 2 параметра:
• Вход в систему — учетная запись, с правами которой служба будет работать в системе. Это важный параметр, так как определяет ресурсы, к которым будет иметь доступ служба. Служба может работать от имени системы, причем соответствующая галочка разрешает взаимодействие с рабочим столом, или от имени любой другой учетной записи — нужно лишь указать пароль и подтверждение.
• Профили оборудования. Здесь разрешается или запрещается запуск службы для определенных профилей оборудования. Например, у вас есть ноутбук с док-станцией, причем последняя имеет сетевую карточку. Логично было бы создать 2 профиля: с и без док-станции. Соответственно все сетевые службы во втором случае не нужны, и их можно смело отключить для данного профиля, выиграв в производительности.
Восстановление
Все созданное человеком содержит ошибки.
Они могут проявиться и в работе служб, поэтому в NT предусмотрен механизм восстановления функционирования служб после сбоя.
Обратим свое внимание на закладку Восстановление (рис.3).
• Действия при сбое службы — действия, которые должен выполнить компьютер при первом, втором и последующих сбоях службы. Поле может иметь следующие значения: Не выполнять никаких действий, Перезапуск службы, Запуск программы, Перезагрузка компьютера. В зависимости от выбранных вариантов могут стать активными другие поля.
• Сброс счетчика ошибок — количество дней, после которых счетчик ошибок обнулится.
• Перезапуск службы — интервал в минутах, после которого служба перезапустится.
• Программа — имя программы, запускаемой после сбоя.
• Параметры командной строки — параметры, предаваемые программе, запускаемой после сбоя.
• Дописать в командную строку счетчик ошибок. Дает возможность запускаемой программе проанализировать, сколько раз служба сбоила.
• Параметры перезагрузки компьютера: время в минутах, через которое произойдет перезагрузка, и сообщение, которое будет отправлено другим компьютерам сети.
Зависимости
Ряд служб зависит от других служб, драйверов и групп служб.
Если не запустится служба — не запустятся и все зависимые от нее. Закладка Зависимости (рис.4) дает возможность проанализировать возможные конфликты на почве зависимости:). Здесь мы увидим 2 поля:
• Служба зависит от следующих компонентов — список компонентов, от которых зависит служба. Если не загрузится один из них — служба не сможет запуститься.
• Следующие компоненты зависят от службы — список компонентов, которые не смогут работать, если служба не запустится.
Заключение
Думаю, данного материала на первых порах хватит. Настраивая службы, можно добиться заметного повышения быстродействия. Главное — не перестараться с отключением всего подряд: обращайте внимание на зависимости и не балуйтесь с учетными записями. Данный материал почерпнут из мозга автора, а также из книг Федора Зубанова "Microsoft Windows 2000. Планирование, развертывание, управление" и Д. Соломона и М. Руссиновича "Внутреннее устройство Microsoft Windows 2000".
Bye!
Creator, creator_vom@tut.by
— Я не бездействовал. Я сразу на капку нажал — Скрипач свидетель. Всем постам, гадюшник с колесиками сюда, в ку.
(с) "Кин-Дза-Дза"
Вдогонку
Хотелось бы дополнить предыдущую статью о файловых системах следующей полезной информацией.
Во-первых, имена файлов в NTFS хранятся в 2-байтовой кодировке Unicode, что автоматически означает возможность называть файлы на любом языке, хоть на китайском (лишь бы шрифт соответствующий был), и не нуждаться в переключении кодовой страницы для их (имен) правильного отображения.
Во-вторых, советую интересующимся поэкспериментировать с командой FSUTIL, которая позволяет управлять разреженными файлами, жесткими связями и т.д., и MOUNTVOL — управление точками переопределения (точки повторной обработки). Об NTFS мы, возможно, подробнее поговорим позднее.
Ну, а сейчас перейдем к другой важной особенности NT-систем — службам.
Служу Советскому Союзу!
В любой многозадачной ОС есть механизм для запуска процессов, не взаимодействующих с пользователем (не интерактивных), т.е. работающих в фоновом режиме.
В Unix-системах такие процессы называются демонами (от Daemon — дух, не путать с демоном:)), а в NT они носят имя сервисов, Win32-сервисов или служб.
Последний перевод слова Service в данном случае наиболее правильный, так как под сервисами в терминологии Microsoft подразумеваются также драйверы устройств. Данный механизм удобен для решения таких задач, как реализация клиент-серверного приложения, где сервер оформлен в виде службы (например, web-сервер).
Службы состоят из трех частей:
• Сервисное приложение (Ser-vice 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 (удаленная консоль).
Двойной щелчок левой кнопкой мышки по названию откроет окно свойств данной службы. Рассмотрим каждую закладку.
Общие
Закладка Общие (рис.1) содержит следующие сведения:
• Имя службы.
• Выводимое имя ("понятное" имя, необязательный параметр).
• Описание — комментарии по роду деятельности службы.
• Исполняемый файл.
• Тип запуска: Авто, Вручную, Отключено. При типе Авто служба запускается при загрузке машины; если стоит Вручную, то ее может запустить пользователь или программа; Отключено — запуск невозможен.
• Состояние. Отображает состояние службы. Ниже находятся кнопки для управления работой службы.
• Параметры запуска — параметры командной строки, передаваемые службе.
Вход в систему
На закладке Вход в систему (рис.2) отображаются 2 параметра:
• Вход в систему — учетная запись, с правами которой служба будет работать в системе. Это важный параметр, так как определяет ресурсы, к которым будет иметь доступ служба. Служба может работать от имени системы, причем соответствующая галочка разрешает взаимодействие с рабочим столом, или от имени любой другой учетной записи — нужно лишь указать пароль и подтверждение.
• Профили оборудования. Здесь разрешается или запрещается запуск службы для определенных профилей оборудования. Например, у вас есть ноутбук с док-станцией, причем последняя имеет сетевую карточку. Логично было бы создать 2 профиля: с и без док-станции. Соответственно все сетевые службы во втором случае не нужны, и их можно смело отключить для данного профиля, выиграв в производительности.
Восстановление
Все созданное человеком содержит ошибки.
Они могут проявиться и в работе служб, поэтому в NT предусмотрен механизм восстановления функционирования служб после сбоя.
Обратим свое внимание на закладку Восстановление (рис.3).
• Действия при сбое службы — действия, которые должен выполнить компьютер при первом, втором и последующих сбоях службы. Поле может иметь следующие значения: Не выполнять никаких действий, Перезапуск службы, Запуск программы, Перезагрузка компьютера. В зависимости от выбранных вариантов могут стать активными другие поля.
• Сброс счетчика ошибок — количество дней, после которых счетчик ошибок обнулится.
• Перезапуск службы — интервал в минутах, после которого служба перезапустится.
• Программа — имя программы, запускаемой после сбоя.
• Параметры командной строки — параметры, предаваемые программе, запускаемой после сбоя.
• Дописать в командную строку счетчик ошибок. Дает возможность запускаемой программе проанализировать, сколько раз служба сбоила.
• Параметры перезагрузки компьютера: время в минутах, через которое произойдет перезагрузка, и сообщение, которое будет отправлено другим компьютерам сети.
Зависимости
Ряд служб зависит от других служб, драйверов и групп служб.
Если не запустится служба — не запустятся и все зависимые от нее. Закладка Зависимости (рис.4) дает возможность проанализировать возможные конфликты на почве зависимости:). Здесь мы увидим 2 поля:
• Служба зависит от следующих компонентов — список компонентов, от которых зависит служба. Если не загрузится один из них — служба не сможет запуститься.
• Следующие компоненты зависят от службы — список компонентов, которые не смогут работать, если служба не запустится.
Заключение
Думаю, данного материала на первых порах хватит. Настраивая службы, можно добиться заметного повышения быстродействия. Главное — не перестараться с отключением всего подряд: обращайте внимание на зависимости и не балуйтесь с учетными записями. Данный материал почерпнут из мозга автора, а также из книг Федора Зубанова "Microsoft Windows 2000. Планирование, развертывание, управление" и Д. Соломона и М. Руссиновича "Внутреннее устройство Microsoft Windows 2000".
Bye!
Creator, creator_vom@tut.by
Компьютерная газета. Статья была опубликована в номере 16 за 2003 год в рубрике soft :: win