378

Windows サービスをインストールする場合、Windows の起動時に Windows サービスを自動的に開始するためのオプションが 2 つあります。1 つはAutomaticで、もう 1 つはAutomatic (Delayed start)です。これら2つの詳細の違いは何ですか?

たとえば、wixtoolset でインストーラーを作成している場合、ServiceConfig要素にはDelayedAutoStart属性があります。起動時にサービスが開始されると、どのような影響がありますか?

WiX ドキュメント: ServiceConfig 要素

4

1 に答える 1

523

つまり、Automaticに設定されたサービスは起動プロセス中に開始され、Delayedに設定されたサービスは起動直後に開始されます。

サービスを遅延して開始すると、サーバーの起動パフォーマンスが向上し、コメントでリンクされているアドリアーノの記事に概説されているセキュリティ上の利点があります。

更新:「起動直後」は、実際には、デフォルトで最後の「自動」サービスが開始されてから 2 分後です。これは、 Windows Internalsおよびその他の情報源 ( 3、4 )によると、レジストリ キーによって構成できます

関心のあるレジストリ キー (少なくとも一部のバージョンの Windows では) は次のとおりです。

  • HKLM\SYSTEM\CurrentControlSet\services\<service name>\DelayedAutostart1遅れた場合は値を持ち、そうで0ない場合は値を持ちます。
  • HKLM\SYSTEM\CurrentControlSet\services\AutoStartDelayまたはHKLM\SYSTEM\CurrentControlSet\Control\AutoStartDelay(Windows 10 の場合): (DWORD) 待機するミリ秒の 10 進数。これを作成する必要がある場合があります。すべての遅延サービスにグローバルに適用されます。
于 2012-06-13T13:12:05.043 に答える