1. ホーム
  2. オペレーティングシステム
  3. システムプロセス

システムの高速シャットダウンを設定する方法

2022-01-11 18:43:50

Windowsはシャットダウン速度が遅いという批判があり、この問題はWindows Vistaでも解決されていません。もちろん、これはWindowsのシステム自体の仕組みも関係しており、Windowsがシャットダウンコマンドを発行した後、まずサービスやアプリケーション、プロセスがロードされていることを通知し、それらを1つ1つ閉じて初めて、システムのシャットダウンや再起動というタスクが実行できるようになっている。理論的には、これらのプロセスを省略することはできませんし、システムの安定性に影響を及ぼします。   {これらのプロセスは、理論上、システムの安定性に影響を与えることなく省略することはできません。

システムを素早く停止させる方法

したがって、ユーザーがWindows Vistaのシャットダウンを高速化するために、システムの安定性を確保するためにできる最適化は、類似のサービスやアプリケーション、プロセスのシャットダウンをスキップすることではなく、シャットダウンまでの待ち時間を最短にすることであると言えます。では、Windows Vistaではどのようにすればよいのだろうか。  

     Windowsの場合は前述の通り、レジストリを変更して対応するオプションを調整することで可能です。  

サービス停止までの待ち時間を短くする  

  前述したように、Windows Vistaのシャットダウン処理では、まずロードされたサービスに対してシャットダウンの警告を発し、これらのサービスが自動的にシャットダウンされた後に与えられるシャットダウン信号を待ち受ける。設定された待ち時間が経過してもシャットダウン信号が受信されない場合、Windowsシステムは該当するサービスの強制的なシャットダウンを実行する。 

        Windows Vistaのシャットダウンを高速化するには、まず、サービスをシャットダウンするためのデフォルトのシステム待機時間を短縮することです。レジストリエディタを開き、以下のレジストリエントリを見つけます。 

 HKEY_LOCAL_MACHINESystemCurrentControlSetControl    {を使用します。

       右側のパネルに「WaitToKillServiceTimeout」というレジストリ項目があるので、これをダブルクリックして変更し、値をデフォルトの20000(ミリ秒)から5000や1000など小さい値に調整します。Windows Vistaが設定から5秒(5000)または1秒(1000)以内にサービス停止信号を受信しない場合、システムが警告ウィンドウをポップアップしてサービスを停止できないことをユーザーに知らせ、サービスを強制的に停止するか、ユーザーが選択するまで待ち続けるかの選択肢を与えるようにします。   

申請・処理終了までの待ち時間の短縮  

  Windows Vistaでは、サービスを閉じるまでの待ち時間と同様に、アプリケーションやプロセスが勝手に終了するのを待ってから強制終了する期間を設けており、その制限時間を超えて初めてWindowsが強制的にサスペンドするようになっています。  

/

  したがって、アプリケーションの終了や待機の実行にかかる既定の時間を短くすることで、Windows Vistaのシャットダウンを高速化することもできる。
上記と同様の方法で設定するには、レジストリ内の以下のブランチを探します。   

 HKEY_CURRENT_USER/Control Panel/Desktop  

/{p

        右側のパネルにある「WaitToKillAppTimeout」をダブルクリックして、その値をデフォルトの20000(同じミリ秒)から、より小さな5000または1000に変更します。 Windowsがシャットダウンコマンドを発行してから5秒または1秒待っても特定のアプリケーションまたはプログラムからシャットダウン信号を受信しない場合、対応する警告シグナルがポップアップされて強制終了するかどうかをユーザーに尋ねます。  
右側のパネルには、「HungAppTimeout」というレジストリ項目もあります。これは、オブジェクトが応答しない場合にユーザーがプロセスやアプリケーションを強制終了してから、システムが待機する時間に相当します。デフォルト値は「5000」ですが、通常は「1000」に変更することができます。  
次に、以下のレジストリ・ブランチで   

 HKEY_USERS.DEFAULT/Control PanelDesktop  
/

  上記を繰り返し、「WaitToKillAppTimeout」と「HungAppTimeout」レジストリエントリの値を変更します。

シャットダウン時やログアウト時にアプリケーションやプロセスを自動的に中断することが可能  
/

  ただし、「HungAppTimeout」の値を小さく設定しても、待ち時間が制限時間を超えるとWindows Vistaが自動的にプログラムやプロセスを中断するわけではなく、中断するかどうかをユーザーが確認するためのダイアログボックスがポップアップ表示されることに変わりはない。これが面倒だと感じる場合は、レジストリエントリを変更することで、Windows Vistaが待機タイムアウト後に自動的にプロセスを強制的に停止するようにすることができる。

  以下のレジストリブランチを検索してください。  

 HKEY_CURRENT_USERControl PanelDesktop registry  
/

  AutoEndTasks」というレジストリ項目があり、デフォルト値が「0」であることがわかります。これを「1」に変更すると、Windows Vistaがユーザーの確認を必要とせずにすべてのプロセスを自動的に終了させます。    {デフォルト値は "0 "です。

システムの安定性を確保することを前提に 

  上記の方法は、場合によってはWindows Vistaのシャットダウンを大幅に早めることができますが ただし、「WaitToKillServiceTimeout」、「WaitToKillAppTimeout」、「HungAppTimeout」のいずれの場合も、Windowsシステムにとって非常に重要かつ不可欠なパラメータであり、不適切な設定はシステムの安定性や重要なユーザーデータを失う結果に影響することを強調する必要があります。 {Windowsシステムでは、「HungAppTimeout」または「HungAppTimeout」は非常に重要で不可欠なパラメータです。

  WindowsシステムでWaitToKillServiceTimeoutを使用する目的は、対応するサービスにバッファ時間を与え、システムがシャットダウンする前に、実行中のサービスがキャッシュ内のデータを書き戻せるようにすることである。十分なバッファ時間が確保されていない場合、データが失われ、予期せぬ結果を招く可能性があるため、一般的にタイムアウトを短く設定することは好ましくなく、0に設定することはさらに不適切である。