Início de gatilho de serviço do Windows - diferença manual vs automático?

22

Desde o Windows Server 2008 R2 (e o Windows 7, penso no SO cliente), a Microsoft introduziu os trigger startserviços. Eu entendo diferença entre automatic, automatic (delayed)e manualinicialização tipos. Pelo que li em artigos pesquisados, acredito que compreendo a lógica de trigger start(embora nunca a tenha usado).

O que eu realmente não estou certo que eu compreendo seria diferença de serviços que estão configurados para automatic (trigger start)e manual (trigger start)e eu não teve sorte de encontrar qualquer explicação para isso.

Estou pensando que, nos dois casos, o serviço não está sendo executado, a menos que o gatilho o inicie, então qual seria a diferença realmente?

A razão pela qual encontrei essa pergunta é realmente o monitoramento de serviços do tipo inicialização automática. Como o serviço está definido para iniciar com o gatilho e o gatilho não é válido, o serviço não está sendo executado e o monitoramento está relatando da maneira que esse serviço automático não está sendo executado.

Para resumir - minhas perguntas são:

  1. Qual a diferença entre automatic (trigger start)e manual (trigger start)serviço?
  2. Pode ter algum impacto no serviço / aplicativo (em geral) se o serviço for alternado de automatic (trigger start)para manual (trigger start)?
Ricky-Brno
fonte

Respostas:

32

Os serviços automáticos são iniciados quando o sistema operacional é inicializado. Serviços manuais não. Os gatilhos podem ser adicionados aos serviços para iniciá-los em algum evento, como um evento ETW ou um dispositivo USB conectado, etc. Os gatilhos podem ser adicionados aos serviços manuais ou automáticos.

Um exemplo de acionador (es) em um serviço automático (início do acionador):

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;

Um exemplo de acionador (es) em um serviço manual (início do acionador):

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

Um serviço pode ser definido como Automático, para que seja iniciado assim que o sistema operacional for carregado, mas também poderá ser interrompido automaticamente quando o serviço não tiver mais trabalho a ser feito. Depois de parado, um gatilho pode iniciá-lo novamente a qualquer momento.

Portanto, para recapitular, os serviços Automático e Manual podem ter gatilhos que os iniciam manualmente. A única diferença é que os serviços automáticos são iniciados assim que o sistema operacional é carregado.

Ryan Ries
fonte
Não está totalmente claro se esses serviços começam por gatilho ou automático? Ou eles apenas param pelo gatilho?
Suncatcher