安装 Windows 服务时,有两个选项可用于在 Windows 启动时自动启动 Windows 服务。一个是Automatic,另一个是Automatic (Delayed start)。这两者在细节上有什么区别?
例如,如果您使用 wixtoolset 创建安装程序,则该ServiceConfig
元素具有该DelayedAutoStart
属性。这将如何影响在启动时启动服务时会发生什么?
WiX 文档:ServiceConfig 元素
安装 Windows 服务时,有两个选项可用于在 Windows 启动时自动启动 Windows 服务。一个是Automatic,另一个是Automatic (Delayed start)。这两者在细节上有什么区别?
例如,如果您使用 wixtoolset 创建安装程序,则该ServiceConfig
元素具有该DelayedAutoStart
属性。这将如何影响在启动时启动服务时会发生什么?
WiX 文档:ServiceConfig 元素
简而言之,设置为自动的服务将在启动过程中启动,而设置为延迟启动的服务将在启动后不久启动。
延迟启动服务可提高服务器的启动性能并具有安全优势,这些优势在评论中链接到的文章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 上): (DWORD) 十进制等待的毫秒数,可能需要创建这个。适用于全球所有延迟服务。