«Автоматически» против «Автоматически (отложенный запуск)»

351

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

Например, если вы создаете установщик с помощью wixtoolset, ServiceConfigэлемент имеет DelayedAutoStartатрибут. Как это повлияет на то, что происходит, когда службы запускаются во время загрузки?

Документация WiX: ServiceConfig Element

Сачин Каинт
источник
6
blogs.technet.com/b/askperf/archive/2008/02/02/…
Адриано Репетти
24
Я не уверен, как это считается не по теме, учитывая тот факт, что wixtoolset.org дает вам возможность указать это, и мы разрешаем вопросы о Wix.
Эльфай
11
Я пришел сюда в поисках ответа для установщика wix. Это абсолютно на тему программирования, так как установщик имеет отношение к программированию.
Still.Tony 15.01.15
6
Договорились с Смитерсом и Питлоком. Если вы посмотрите на результаты голосования по этому вопросу и ответам по этой и другим «закрытым» темам, то, похоже, что некоторые члены больше интересуются буквой закона, а не полезностью поста, который является целым идея таких сайтов, как это. По-видимому, они не понимают, что этот конкретный вопрос, фактически, влияет на «программирование». По крайней мере, они не заняли пост.
Джефф Моден
7
Я не согласен, что это не по теме. Это очень актуально для разработчиков.
mghaoui

Ответы:

485

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

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

Обновление: по умолчанию «вскоре после загрузки» фактически через 2 минуты после запуска последней «автоматической» службы. Это может быть настроено с помощью раздела реестра, в соответствии с Windows Internals и другими источниками ( 3 , 4 ).

Интересующие ключи реестра (по крайней мере, в некоторых версиях Windows):

  • HKLM\SYSTEM\CurrentControlSet\services\<service name>\DelayedAutostartбудет иметь значение в 1случае задержки, 0если нет.
  • HKLM\SYSTEM\CurrentControlSet\services\AutoStartDelayили HKLM\SYSTEM\CurrentControlSet\Control\AutoStartDelay(в Windows 10): десятичное число секунд ожидания, возможно, потребуется создать его. Применяется глобально ко всем отложенным сервисам.
Колин Пикард
источник
11
Мне интересно, как коротко коротко? Там не так много информации. Похоже, что Windows будет ждать, пока нагрузка на систему не упадет, или пока не будет достигнут определенный шаг во время последовательности загрузки. После этого начинается запуск любых отложенных сервисов. Есть какие-то возражения или даже знания по этому поводу?
Лев
10
@leo 2 минуты после последнего автоматического обслуживания - ответ обновлен.
Колин Пикард
6
С несколькими отложенными службами запуска, как Windows решает, что начинать сначала?
Эрнест
4
Сервисы @ErnestSoeralaya могут быть помечены как зависимые от других сервисов. Windows обеспечит сначала запуск зависимостей, а затем службы должны запускаться в алфавитном порядке; но это не гарантировано.
Колин Пикард
5
@MeM Сбой в какой-либо одной службе не повлияет на любую другую службу. Единственным исключением из этого являются сервисы, которые помечены как зависимые от других сервисов.
Колин Пикард