“自动”与“自动(延迟启动)”

Posted

技术标签:

【中文标题】“自动”与“自动(延迟启动)”【英文标题】:"Automatic" vs "Automatic (Delayed start)" 【发布时间】:2012-06-16 10:17:52 【问题描述】:

安装 Windows 服务时,有两个选项可用于在 Windows 启动时自动启动 Windows 服务。一种是自动,另一种是自动(延迟启动)。这两者具体有什么区别?

例如,如果您使用 wixtoolset 创建安装程序,则ServiceConfig 元素具有DelayedAutoStart 属性。这将如何影响在启动时启动服务时会发生什么?

WiX 文档:ServiceConfig Element

【问题讨论】:

blogs.technet.com/b/askperf/archive/2008/02/02/… 考虑到 wixtoolset.org 让您能够指定这一点,并且我们允许有关 Wix 的问题,我不确定这如何被视为离题。 我来这里是为了寻找 wix 安装程序的答案。这绝对是编程的主题,因为安装程序与编程有点相关。 同意 Smithers 和 PitLock。如果您查看有关此主题和其他“封闭”主题的问题和答案的投票,似乎有些成员更感兴趣的是法律条文而不是帖子的有用性,这是整体像这样的网站背后的想法。显然,他们没有意识到这个特定的问题实际上会影响“编程”。至少他们没有撤下帖子。 我不同意这是题外话。这与开发人员非常相关。 【参考方案1】:

简而言之,设置为 Automatic 的服务将在启动过程中启动,而设置为 Delayed 启动的服务将在启动后不久启动。

启动您的服务延迟可以提高服务器的启动性能,并具有安全优势,这些优势在 cmets 中链接到的 the articleAdriano 中进行了概述。

更新:“启动后不久”实际上是在最后一个“自动”服务启动后 2 分钟,默认情况下。这可以根据Windows Internals 和其他来源(3,4)通过注册表项进行配置。

感兴趣的注册表项(至少在某些版本的 Windows 中)是:

如果延迟,HKLM\SYSTEM\CurrentControlSet\services\<service name>\DelayedAutostart 的值为 1,否则为 0HKLM\SYSTEM\CurrentControlSet\services\AutoStartDelayHKLM\SYSTEM\CurrentControlSet\Control\AutoStartDelay(在 Windows 10 上):(DWORD)十进制等待毫秒数,可能需要创建这个。全局应用于所有延迟服务。

【讨论】:

我想知道,有多短?那里没有太多信息。不知何故,Windows 似乎会等待,直到系统负载下降,或者达到启动顺序中的某个步骤。之后,它开始启动任何延迟的服务。对此有任何意见甚至知识吗? @leo 最后一次自动服务后 2 分钟 - 答案已更新。 多个延迟启动服务,windows如何决定先启动哪个? @ErnestSoeralaya 服务可以被标记为依赖于其他服务。 Windows 将确保首先启动依赖项,然后服务应该按字母顺序启动;但这不能保证。 @MeM 任何一项服务发生故障都不会影响其他任何服务。唯一的例外是被标记为依赖于其他服务的服务。

以上是关于“自动”与“自动(延迟启动)”的主要内容,如果未能解决你的问题,请参考以下文章

Background Intelligent Transfer Service一直处于开机启动状态,怎么禁用都不行!

C# Redis实战

SpringBoot——自动配置与启动

1自动创建与启动的进程

1自动创建与启动的进程

3自动创建与启动的父线程