Windows 服务触发器启动 - 手动与自动的区别?

Windows 服务触发器启动 - 手动与自动的区别?

自 Windows Server 2008 R2(我认为客户端操作系统是 Windows 7)以来,Microsoft 已引入trigger start服务。我确实了解和启动类型之间的区别automaticautomatic (delayed)manual我在谷歌上搜索的文章中看到的内容来看,我相信我确实理解逻辑trigger start(尽管从未使用过)。

我不太确定我是否理解了配置的服务之间的差异automatic (trigger start)manual (trigger start)而且我也没有找到任何解释。

我有点想,在这两种情况下,除非触发器启动它,否则服务都不会运行,那么实际上有什么区别呢?

我遇到这个问题的原因实际上是对自动启动类型服务的监控。由于服务设置为通过触发器启动,而触发器无效,因此服务未运行,监控报告的方式是,自动服务未运行。

总而言之,我的问题是:

  1. automatic (trigger start)manual (trigger start)服务有什么区别?
  2. automatic (trigger start)如果服务从 切换到 ,这是否会对服务/应用程序(一般来说)产生任何影响manual (trigger start)

答案1

自动服务在操作系统启动时启动。手动服务则不会启动。可以向服务添加触发器,使其在某些事件(例如 ETW 事件或插入 USB 设备等)上启动。触发器可以添加到手动或自动服务中。

自动(触发启动)服务上的触发器示例:

C:\Users\Ryan>sc qtriggerinfo dnscache
[SC] QueryServiceConfig2 SUCCESS

SERVICE_NAME: dnscache

        START SERVICE
          FIREWALL PORT EVENT          : b7569e07-8421-4ee0-ad10-86915afdad09 [PORT OPEN]
            DATA                       : 5355;UDP;

手动(触发启动)服务上的触发器示例:

C:\Users\Ryan>sc qtriggerinfo appinfo
[SC] QueryServiceConfig2 SUCCESS

SERVICE_NAME: appinfo

        START SERVICE
          NETWORK EVENT                : bc90d167-9470-4139-a9ba-be0bbbf5b74d [RPC INTERFACE EVENT]
            DATA                       : 201ef99a-7fa0-444c-9399-19ba84f12a1a
        START SERVICE
          NETWORK EVENT                : bc90d167-9470-4139-a9ba-be0bbbf5b74d [RPC INTERFACE EVENT]
            DATA                       : 5f54ce7d-5b79-4175-8584-cb65313a0e98
        START SERVICE
          NETWORK EVENT                : bc90d167-9470-4139-a9ba-be0bbbf5b74d [RPC INTERFACE EVENT]
            DATA                       : fd7a0523-dc70-43dd-9b2e-9c5ed48225b1
        START SERVICE
          NETWORK EVENT                : bc90d167-9470-4139-a9ba-be0bbbf5b74d [RPC INTERFACE EVENT]
            DATA                       : 58e604e8-9adb-4d2e-a464-3b0683fb1480

可以将服务设置为“自动”,这样它在操作系统加载后就会立即启动,但当服务没有其他工作要做时,它也可以自行正常停止。停止后,触发器可以随时重新启动它。

总结一下,自动和手动服务都可以有手动启动它们的触发器。唯一的区别是自动服务在操作系统加载后立即启动。

相关内容