“自动”与“自动(延迟启动)”
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
,否则为 0
。
HKLM\SYSTEM\CurrentControlSet\services\AutoStartDelay
或 HKLM\SYSTEM\CurrentControlSet\Control\AutoStartDelay
(在 Windows 10 上):(DWORD)十进制等待毫秒数,可能需要创建这个。全局应用于所有延迟服务。
【讨论】:
我想知道,有多短?那里没有太多信息。不知何故,Windows 似乎会等待,直到系统负载下降,或者达到启动顺序中的某个步骤。之后,它开始启动任何延迟的服务。对此有任何意见甚至知识吗? @leo 最后一次自动服务后 2 分钟 - 答案已更新。 多个延迟启动服务,windows如何决定先启动哪个? @ErnestSoeralaya 服务可以被标记为依赖于其他服务。 Windows 将确保首先启动依赖项,然后服务应该按字母顺序启动;但这不能保证。 @MeM 任何一项服务发生故障都不会影响其他任何服务。唯一的例外是被标记为依赖于其他服务的服务。以上是关于“自动”与“自动(延迟启动)”的主要内容,如果未能解决你的问题,请参考以下文章