web-dev-qa-db-ja.com

Windowsサービストリガーの開始-手動と自動の違いは?

Windows Server 2008 R2(およびクライアントOSとしては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)に切り替えられる場合、サービス/アプリケーション(一般)に影響を与えることができますか?
22
Ricky-Brno

OSの起動時に自動サービスが開始されます。手動サービスにはありません。トリガーをサービスに追加して、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

サービスを[自動]に設定して、OSが読み込まれるとすぐに開始することができますが、サービスに必要な作業がなくなったときにサービスを自動的に停止することもできます。停止したトリガーはいつでも再開できます。

つまり、自動サービスと手動サービスの両方に、手動で開始するトリガーを設定できます。唯一の違いは、オペレーティングシステムが読み込まれるとすぐに自動サービスが開始されることです。

32
Ryan Ries