自从
Windows Server 2008 R2(以及Windows 7,我认为是客户端操作系统)以来,Microsoft已经为服务引入了触发器启动.我理解自动,自动(延迟)和手动启动类型之间的区别.从我在googled文章中看到的内容,我相信我确实理解了触发器启动的逻辑(尽管从未使用过).
我不确定我理解的是配置为自动(触发启动)和手动(触发启动)的服务的差异,我没有运气找到任何解释.
我有点认为在两种情况下服务都没有运行,除非触发器会启动它,那么实际上会有什么不同呢?
我遇到这个问题的原因实际上是监控自动启动类型服务.由于服务设置为以触发器启动并且触发器无效,因此服务未运行且监视正在报告它,即自动服务未运行.
总结一下 – 我的问题是:
>自动(触发启动)和手动(触发启动)服务有什么区别?
>如果服务从自动(触发启动)切换到手动(触发启动),它是否会对服务/应用(一般情况下)产生影响?
操作系统启动时自动启动服务.手动服务没有.可以将触发器添加到服务中以使它们在某些事件上启动,例如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
可以将服务设置为“自动”,以便在操作系统加载后立即启动,但是当服务无需执行任何工作时,它也可以自行正常停止.停止后,触发器可以随时再次启动.
因此,回顾一下,自动和手动服务都可以有手动启动它们的触发器.唯一的区别是,一旦操作系统加载,自动服务就会启动.