Windowsサービスをインストールするときに、Windows起動時にWindowsサービスを自動的に開始する方法は2つあります。 1つは 自動 、もう1つは 自動(遅延開始) です。これら2つの詳細な違いは何ですか?
たとえば、wixtoolsetを使用してインストーラを作成している場合、ServiceConfig
要素にはDelayedAutoStart
属性があります。起動時にサービスが開始されたときに、それがどうなるのでしょうか。
WiXのドキュメント:ServiceConfig要素
つまり、Automaticに設定されたサービスは起動プロセス中に起動し、Delayedとして起動するように設定されたサービスは起動直後に起動します。
サービスを開始すると{Delayed} _サーバーの起動パフォーマンスが向上し、コメント内の 記事 Adrianoにリンクされているセキュリティ上の利点が得られます。
更新: "起動直後"は、デフォルトでは最後の "自動"サービスが開始されてから実際に2分後です。これは、 Windows Internals および他のソース( 3 、 4 )に従って、レジストリキーで設定できます。
重要なレジストリキーは(少なくとも一部のバージョンのWindowsでは)、HKLM\SYSTEM\CurrentControlSet\services\<service name>\DelayedAutostart
は遅延した場合は1
、遅延しない場合は0
の値になります。
HKLM\SYSTEM\CurrentControlSet\services\AutoStartDelay
待機する秒数(10進数)、これを作成する必要があるかもしれません。すべてのDelayedサービスにグローバルに適用されます。