Windows Service Trigger Start - Unterschied manuell oder automatisch?

22

Seit Windows Server 2008 R2 (und Windows 7, glaube ich, für das Client-Betriebssystem) hat Microsoft trigger startfür Dienste eingeführt. Ich verstehe Unterschied zwischen automatic, automatic (delayed)und manualTypen Inbetriebnahme. Nach dem, was ich in gegoogelten Artikeln gelesen habe, verstehe ich die Logik von trigger start(obwohl ich sie nie benutzt habe).

Was ich nicht wirklich verstehe, ist der Unterschied zwischen konfigurierten automatic (trigger start)und konfigurierten Diensten. manual (trigger start)Ich hatte kein Glück, eine Erklärung dafür zu finden.

Ich bin der Meinung, dass in beiden Fällen der Dienst nur ausgeführt wird, wenn der Auslöser ihn startet. Was wäre also der Unterschied?

Grund, warum ich auf diese Frage gestoßen bin, ist die Überwachung von Diensten mit automatischem Starttyp. Da der Dienst so eingestellt ist, dass er mit Trigger startet und Trigger nicht gültig ist, wird der Dienst nicht ausgeführt und die Überwachung meldet, dass der automatische Dienst nicht ausgeführt wird.

Zusammenfassend sind meine Fragen:

  1. Was ist der Unterschied zwischen automatic (trigger start)und manual (trigger start)Service?
  2. Kann es keine Auswirkungen auf Service / Anwendung (im Allgemeinen), wenn Service von schaltet werden automatic (trigger start)zu manual (trigger start)?
Ricky-Brno
quelle

Antworten:

32

Automatische Dienste werden beim Starten des Betriebssystems gestartet. Manuelle Dienste nicht. Zu Diensten können Trigger hinzugefügt werden, damit sie bei bestimmten Ereignissen wie einem ETW-Ereignis oder einem angeschlossenen USB-Gerät gestartet werden. Trigger können entweder manuellen oder automatischen Diensten hinzugefügt werden.

Ein Beispiel für den Auslöser eines automatischen Dienstes (Auslöserstart):

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;

Ein Beispiel für den Auslöser eines manuellen Dienstes (Auslöserstart):

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

Ein Dienst kann auf Automatisch gesetzt werden, sodass er beim Laden des Betriebssystems gestartet wird. Er kann jedoch auch automatisch beendet werden, wenn der Dienst keine Arbeit mehr zu erledigen hat. Nach dem Stoppen kann der Trigger jederzeit wieder gestartet werden.

Zusammenfassend kann gesagt werden, dass sowohl automatische als auch manuelle Dienste Trigger haben können, die sie manuell starten. Der einzige Unterschied besteht darin, dass die automatischen Dienste gestartet werden, sobald das Betriebssystem geladen wird.

Ryan Ries
quelle
Es ist nicht ganz klar, ob diese Dienste per Trigger oder automatisch starten? Oder sie stoppen nur durch Auslöser?
Suncatcher