Delayed start сервисов windows

Delayed start сервисов windows

Добрый день! Уважаемые читатели, лучшего компьютерного блога России pyatilistnik.org. Сегодня я хочу поговорить про настройку служб, в операционной системе Windows. Думаю не для кого не секрет, что голая ОС ни кому не нужна, она по сути является каркасом для установки программ, которые несут разные функции, для решения разных задач, это как с различными конструкторами для сайтов, так называемые CMS, например, WordPress, на который потом устанавливаются плагины.

Бывает так, что установленных программ и служб, очень много и они либо могут конфликтовать друг с другом, либо же зависимы друг от друга, от последовательности запуска. И может сложиться ситуация, что у вас не будет работать какой либо сервис, только из-за того, что ваша база данных загрузилась, позже, чем загрузился и запустился сервис. Вот в таких случаях настраивается автоматически отложенный запуск. Этим мы с вами сегодня и займемся, я расскажу, что такое отложенный запуск и как его использовать.

Что такое отложенный запуск службы или программы Windows

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

Автоматический отложенный запуск — это функция операционной системы Windows 7 и выше, вплоть до последней Windows 10 1803, в задачи которой входит:

  • Оптимизация и ускорение загрузки ОС Windows, путем перераспределения очередности запуска различных служб
  • Оптимизация работы зависимых служб, когда должна быть соблюдена последовательность, что после чего должно выполняться, ниже приведу примеры

Примеры использования отложенного запуска служб

Как мы поняли из определения, данного выше, операционная система производит выполнение некоторых служб, только после того, как будут запущены другие. Отложенные службы осуществляют свое выполнение с самым низким приоритетом в ОС (THREAD_PRIORITY_LOWEST), что позволяет вашему компьютеру загружаться на порядок быстрее, и производить в фоновом режиме все необходимое. Ну согласитесь, вы же не будите сразу же печатать, а вот получить ip адрес от DHCP сервера, это задача с высшим приоритетом, иначе вы не сможете работать.

Приведу ряд примеров из своей практики:

  1. Классическим примером использования возможности запускать службы с некоторой задержкой по времени и меньшим приоритетом, является схема, приложений имеющих базу данных для своей работы. Это могут быть веб сервисы, приложения по типу «Гарант» или «Консультант». Если база данных загрузилась позже службы отвечающей за предоставление пользователю интерфейса, то она работать не будет, я вам недавно рассказывал, о ошибке, что не может быть получена лицензия для запуска программы PlanTracer Pro 7.0
  2. Второй пример, это связка активного каталога Active Directory и служба DNS, без которой он не может работать. Так как в подавляющем числе случаев, обе роли установлены совместно на контроллере домена, то бывает после перезагрузки выскакивать ошибка 4015, что AD не смогла разрезолвить зону, и связано, это с тем, что DNS служба загрузилась позже, и правильно было бы выставить для запуска активного каталога отложенный запуск службы.
Читайте также:  При установке windows 10 сохраняются ли данные

Сочетание отложенного запуска, пониженного приоритета для ЦП, оперативной памяти и фоновых операций ввода/вывода, значительно снижает нагрузку на систему, не препятствуя нормальному входу пользователя. Многие службы Windows, включая фоновую интеллектуальную службу передачи (Background Intelligent Transfer Service, BITS), клиент Центра обновления Windows (Windows Update Client) и службу Windows Media Center, теперь запускаются в отложенном режиме, чтобы ускорить процесс входа в систему при загрузке. Чтобы настроить службу для автоматического запуска в отложенном режиме, следует создать параметр REG_DWORD с именем «DelayedAutoStart» в подразделе конфигурации для данной службы в разделе «HKLM\SYSTEM\CurrentControlSet\Services».

Какие бывают типы запуска служб Windows

Существует четыре типа запуска служб в ОС Windows:

  • Автоматический — из названия понятно, что как только запускается «Диспетчер управления службами», то данный службы стартую с максимальным приоритетом
  • Вручную — тут пользователю, нужно самому в ручном режиме запускать службу, либо через планировщик заданий.
  • Отключена — тут думаю все понятно
  • Автоматически (отложенный запуск) — то, о чем мы уже говорили выше.

Как выключить или отключить отложенный запуск служб

Существует два метода, для задания типа запуска сервисов в ОС, как в случае с ошибкой 1068, когда мы искали зависимые службы, можно воспользоваться классической консолью «Службы (Services)», либо же отредактировать реестр Windows.

Самым наверное простым методом задания типа запуска, является оснастка службы. Она открывается, во всех операционных системах Windows одинаково. Нажмите одновременно клавиши WIN и R.

У вас появится окно «Выполнить» в котором вам необходимо ввести:

Это системное название mmc оснастки «Службы», полный список системных названий, смотрите по ссылке слева. В итоге у вас откроется вот такая оснастка, содержащая список всех служб, которые есть в вашей системе. Выберите необходимую вам. В моем примере, это будет сервис программы Corsair SSD Toolbox. Щелкаем по ней правым кликом мыши и из контекстного меню выбираем пункт «Свойства».

На вкладке «Общие» в типе запуска, выберите пункт «Автоматически (отложенный запуск)», после чего нажмите применить. После этого, данная служба при загрузке операционной системы будет получать приоритет со значением THREAD_PRIORITY_LOWEST. Как видите все просто.

Если вы отфильтруете столбец по типу запуска, то увидите какие службу, по умолчанию имеют отложенный запуск:

  • DNS-клиент
  • Брокер системных событий
  • Диспетчер подключений Windows
  • Клиент групповой политики
  • Модули ключей IPsec для обмена ключами в Интернете
  • Модуль поддержки NetBIOS через TCP/IP
  • Служба сопоставления устройств
  • Центр обновления Windows
  • Windows Search
  • Служба общих сетевых ресурсов проигрывателя Windows
  • Центр обновления безопасности
  • Защита программного обеспечения

Настройка отложенного запуска через реестр

Как я и говорил выше, все можно сделать, через реестр системы. Для этого есть параметр DelayedAutoStart. Его нужно создать в ветке куста реестра:

Данный раздел, будет содержать список всех служб системы. Вам необходимо найти нужный.

Как помните, я вам выше показывал список служб с отложенным запуском среди них была Windows Search. Я ее нашел в реестре, и как видите у нее есть ключ DelayedAutoStart со значением 1. Тоже самое вы должны сделать и для другой нужной вам службы.

Читайте также:  Подкачка оперативной памяти линукс

Надеюсь, что данная небольшая заметка про автоматически (отложенный запуск), оказалась для вас полезной, если будут вопросы, то пишите, о них в комментариях.

Функция отложенного запуска: новые возможности для служб Windows

Любому администратору хоть раз приходилось добавлять в автозагрузку сервера задачи, требующие выполнения в строго определенной последовательности. У меня чаще всего возникают проблемы со службами, для нормальной работы которых необходимо подключение к базе данных на этом же сервере. Раньше это решалось с помощью изощренных сценариев или путем запуска приложений вне служебной среды Windows (страшно вспомнить), но в новых продуктах Windows предусмотрена специальная опция, позволяющая управлять автоматической загрузкой.

В Windows Server 2008, Windows Vista и Windows 7 появилась новая опция запуска служб: «Автоматически (отложенный запуск)» (Automatic (Delayed Start)). Она позволяет решить описанную выше проблему с запуском приложения, которое требует подключения к базе данных на этом же сервере для корректного функционирования. Для сервера базы данных в таком случае следует выбрать традиционный режим автоматического запуска, а для приложения — режим отложенного запуска.

Опция отложенного запуска позволяет оптимизировать процесс загрузки системы и облегчает настройку приложений для последовательной автозагрузки. Процесс настройки отложенного запуска для служб ничем не отличается от традиционного (рис. A).

Настроить отложенный запуск можно не только посредством графического интерфейса, но и в реестре, изменив значение параметра Dword в разделе «DelayedAutoStart». При этом все стандартные службы, работающие в автоматическом режиме, запущены не будут: службам, для которых выбран отложенный запуск, просто будет присвоен пониженный приоритет.

Процесс настройки отложенного запуска для служб Windows описывается в блоге TechNet.

В предыдущих версиях Windows при загрузке системы процесс диспетчера сеансов (Session Manager, SMSS.EXE) запускал клиент-серверную подсистему (Client-Server Runtime Subsystem, CSRSS.EXE) и процесс входа в систему (WINLOGON.EXE). Последний запускал процесс сервера проверки подлинности локальной системы безопасности (Local Security Authority Subsystem Service, LSASS.EXE) и диспетчер управления службами (Service Control Manager, SERVICES.EXE). При консольном входе пользователь подключался к сеансу 0 (Session 0), который использовался и системными процессами. Недостаток такого подхода заключался в том, что при наличии у некорректно составленной службы Windows, запущенной в сеансе 0, пользовательского интерфейса в интерактивной консоли, вредоносное программное обеспечение могло атаковать данное окно с использованием сообщений и получить административные права.

Чтобы решить эту проблему, некоторые системные процессы в Windows Vista и Windows Server 2008 были усовершенствованы. SMSS.EXE, как и в предыдущих версиях, по-прежнему является первым пользовательским процессом, запускаемым при загрузке системы. Однако теперь он запускается в двух экземплярах, один из которых отвечает за настройку сеанса 0 для системных процессов. Экземпляр SMSS.EXE, отвечающий за сеанс 0, запускает приложение инициализации Windows (Windows Startup Application, WININIT.EXE) и экземпляр CSRSS.EXE для сеанса 0, а затем завершается. WININIT.EXE продолжает загрузку, запуская SERVICES.EXE и LSASS.EXE, а также новый процесс — диспетчер локальных сеансов (Local Session Manager, LSM.EXE), управляющий подключениями терминального сервера на данном компьютере.

Одновременно с сеансом 0 инициализируется сеанс консоли (Console session). Первый экземпляр SMSS.EXE создает новую копию самого себя для настройки сеанса консоли, как и в случае с сеансом 0. Новый экземпляр SMSS.EXE запускает CSRSS.EXE и WINLOGON.EXE для сеанса консоли, готовя систему к входу пользователя. После этого WINLOGON.EXE запускает хост-интерфейс входа пользователя (Logon User Interface Host, LOGONUI.EXE), который, в свою очередь, выводит окно «Параметры безопасности» (Windows Security) с предложением нажать [Ctrl]+[Alt]+[Delete] для входа.

Читайте также:  Какие процессы грузят процессор linux

Здесь стоит сказать несколько слов о процессе Winlogon. В прошлых версиях Windows процесс WINLOGON.EXE запускал библиотеку DLL графической идентификации и проверки подлинности (Graphical Identification and Authentication, GINA), указанную в реестре, для вывода интерфейса входа в систему с предложением ввести данные учетной записи пользователя. В Windows Vista и Windows Server 2008 библиотека GINA не используется — вместо нее реализована новая архитектура поставщиков учетных данных (Credential Provider). WINLOGON.EXE запускает LOGONUI.EXE для загрузки поставщиков учетных данных, которые настраиваются в разделе реестра «HKLM\Software\Microsoft\Windows NT\CurrentVersion\Authentication\Credential Providers». LogonUI управляет пользовательским интерфейсом и может последовательно запускать несколько поставщиков учетных данных. Поставщики учетных данных могут использоваться для вывода на экран входа в систему определенных элементов. LOGONUI.EXE передает данные учетной записи пользователя процессу WINLOGON.EXE и завершается.

При попытке входа в систему первый экземпляр SMSS.EXE создает новую копию самого себя для настройки нового сеанса, как в случае с сеансом 0 и сеансом консоли. Новый экземпляр SMSS.EXE запускает процессы CSRSS.EXE и WINLOGON.EXE для нового сеанса. WINLOGON.EXE запускает LOGONUI.EXE для вывода экрана входа в систему. На первый взгляд может показаться, что такой механизм создает излишнюю нагрузку на систему. На клиентских компьютерах особой пользы от этого действительно нет. Но в случае с терминальными серверами Windows Server 2008, возможность одновременного выполнения нескольких экземпляров SMSS.EXE ускоряет процесс входа в систему для нескольких пользователей одновременно.

Теперь расскажем вкратце о другой новой функции Windows Vista и Windows Server 2008 — отложенном запуске системных служб. Данная опция позволяет решить проблему автоматического запуска большого числа служб, создающих серьезную нагрузку при старте системы. Теперь те службы, запуск которых в самом начале процесса загрузки системы необязателен, стартуют в отложенном режиме, что существенно ускоряет процесс. Службы, для которых выбрана данная опция, запускаются вскоре после загрузки системы.

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

Сочетание отложенного запуска, пониженного приоритета для ЦП, оперативной памяти и фоновых операций ввода/вывода, значительно снижает нагрузку на систему, не препятствуя нормальному входу пользователя. Многие службы Windows, включая фоновую интеллектуальную службу передачи (Background Intelligent Transfer Service, BITS), клиент Центра обновления Windows (Windows Update Client) и службу Windows Media Center, теперь запускаются в отложенном режиме, чтобы ускорить процесс входа в систему при загрузке. Чтобы настроить службу для автоматического запуска в отложенном режиме, следует создать параметр REG_DWORD с именем «DelayedAutoStart» в подразделе конфигурации для данной службы в разделе «HKLM\SYSTEM\CurrentControlSet\Services».

Оцените статью