web-dev-qa-db-ja.com

"自動" vs "自動(遅延開始)"

Windowsサービスをインストールするときに、Windows起動時にWindowsサービスを自動的に開始する方法は2つあります。 1つは 自動 、もう1つは 自動(遅延開始) です。これら2つの詳細な違いは何ですか?

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

WiXのドキュメント:ServiceConfig要素

317
Sachin Kainth

つまり、Automaticに設定されたサービスは起動プロセス中に起動し、Delayedとして起動するように設定されたサービスは起動直後に起動します。

サービスを開始すると{Delayed} _サーバーの起動パフォーマンスが向上し、コメント内の 記事 Adrianoにリンクされているセキュリティ上の利点が得られます。

更新: "起動直後"は、デフォルトでは最後の "自動"サービスが開始されてから実際に2分後です。これは、 Windows Internals および他のソース( 34 )に従って、レジストリキーで設定できます。

重要なレジストリキーは(少なくとも一部のバージョンのWindowsでは)、HKLM\SYSTEM\CurrentControlSet\services\<service name>\DelayedAutostartは遅延した場合は1、遅延しない場合は0の値になります。

HKLM\SYSTEM\CurrentControlSet\services\AutoStartDelay待機する秒数(10進数)、これを作成する必要があるかもしれません。すべてのDelayedサービスにグローバルに適用されます。

437
Colin Pickard