"自动"与"自动(延迟启动)"

Sac*_*nth 341 windows-services wix

安装Windows服务时,有两个选项可以在Windows启动时自动启动Windows服务.一个是自动,另一个是自动(延迟启动).这两者之间有什么区别?

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

WiX文档:ServiceConfig元素

Col*_*ard 470

简而言之,设置为Automatic的服务将在引导过程中启动,而设置为Delayed的服务将在引导后立即启动.

启动服务延迟可以提高服务器的启动性能,并具有安全性优势,这些优势在评论中链接到Adriano 的文章中列出.

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

感兴趣的注册表项(至少在某些版本的Windows中)是: 如果没有延迟,HKLM\SYSTEM\CurrentControlSet\services\<service name>\DelayedAutostart 将具有值.10

HKLM\SYSTEM\CurrentControlSet\services\AutoStartDelay 要等待的十进制秒数,可能需要创建这个.全局适用于所有延迟服务.

  • 我想知道,不久会有多短暂?没有太多信息.它看起来像Windows会等待,直到系统负载下降,或者在启动序列期间达到某个步骤.之后,它开始启动任何延迟服务.对此的任何争论甚至知识? (11认同)
  • @leo上次自动服务后2分钟 - 答案更新. (10认同)
  • 有多个延迟启动服务,Windows如何决定首先启动哪个? (6认同)
  • @MeM任何一项服务中的失败都不会影响任何其他服务.唯一的例外是标记为依赖于其他服务的服务. (5认同)
  • @ErnestSoeralaya服务可以标记为依赖于其他服务.Windows将确保首先启动依赖项,然后服务*应该*按字母顺序开始; 但这不能保证. (4认同)
  • 根据superuser.com上的Tom Wijsman的说法,默认延迟120秒可以被`HKLM\SYSTEM\CurrentControlSet\Control`中的`AutoStartDelay`值覆盖.我还没检查过. (4认同)
  • 我不知道如果将“自动”服务之一标记为“自动(延迟启动)”后,该服务没有正确启动(无法启动)会怎样? (2认同)