![Windows 服务触发器启动 - 手动与自动的区别?](https://linux22.com/image/633846/Windows%20%E6%9C%8D%E5%8A%A1%E8%A7%A6%E5%8F%91%E5%99%A8%E5%90%AF%E5%8A%A8%20-%20%E6%89%8B%E5%8A%A8%E4%B8%8E%E8%87%AA%E5%8A%A8%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
自 Windows Server 2008 R2(我认为客户端操作系统是 Windows 7)以来,Microsoft 已引入trigger start
服务。我确实了解和启动类型之间的区别automatic
。automatic (delayed)
从manual
我在谷歌上搜索的文章中看到的内容来看,我相信我确实理解逻辑trigger start
(尽管从未使用过)。
我不太确定我是否理解了配置的服务之间的差异automatic (trigger start)
,manual (trigger start)
而且我也没有找到任何解释。
我有点想,在这两种情况下,除非触发器启动它,否则服务都不会运行,那么实际上有什么区别呢?
我遇到这个问题的原因实际上是对自动启动类型服务的监控。由于服务设置为通过触发器启动,而触发器无效,因此服务未运行,监控报告的方式是,自动服务未运行。
总而言之,我的问题是:
automatic (trigger start)
和manual (trigger start)
服务有什么区别?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
可以将服务设置为“自动”,这样它在操作系统加载后就会立即启动,但当服务没有其他工作要做时,它也可以自行正常停止。停止后,触发器可以随时重新启动它。
总结一下,自动和手动服务都可以有手动启动它们的触发器。唯一的区别是自动服务在操作系统加载后立即启动。