GNU/Linux >> Linux の 問題 >  >> Linux

シャットダウンに時間がかかりすぎますか? Linuxで長いシャットダウン時間を調査して修正する方法は次のとおりです

Linuxシステムのシャットダウンに時間がかかりすぎていますか?シャットダウンの遅延の原因を特定して問題を修正するために実行できる手順は次のとおりです。

sigtermとsigkillの概念に少し慣れているといいのですが。

Linuxシステムをシャットダウンすると、sigtermが送信され、実行中のプロセスに停止するように丁寧に要求されます。一部のプロセスは誤動作し、sigtermを無視して、実行を続けます。

これにより、実行中のプロセスが事前定義された期間停止するのをシステムが待機するため、シャットダウンプロセスが遅延する可能性があります。この期間が経過すると、killシグナルを送信して、実行中の残りのすべてのプロセスを強制的に停止し、システムをシャットダウンします。違いを理解するために、sigtermとsigkillについて読むことをお勧めします。

実際、黒い画面に「ジョブの停止が実行されています」などのメッセージが表示される場合があります。

システムのシャットダウンに時間がかかりすぎる場合は、次の操作を実行できます。

  • どのプロセス/サービスに時間がかかりすぎているかを確認し、適切に動作するように削除または再構成できるかどうかを確認します。
  • システムが実行中のプロセスを強制的に停止する前に、デフォルトの待機期間を変更します。 [迅速で汚い修正]

ここではsystemdを使用するUbuntuを使用しています。ここでのコマンドと手順は、systemdを使用するすべてのLinuxディストリビューションで有効です(ほとんどの場合は有効です)。

Linuxで長時間のシャットダウンを引き起こしているプロセスを確認する

何が問題なのかを把握したい場合は、最後のシャットダウンで何が起こったかを確認する必要があります。このコマンドを使用して、「前回のセッションで何をしたかわかります」(しゃれを意図したもの)の力を得る:

journalctl -rb -1

journalctlコマンドを使用すると、システムログを読み取ることができます。オプション「-b-1」を使用して、最後のブートセッションのログをフィルタリングします。オプション「-r」を使用すると、ログは新しい順に表示されます。

つまり、「journalctl -rb -1」コマンドは、Linuxシステムが最後にシャットダウンされる直前のシステムログを表示します。これは、Linuxでの長時間のシャットダウンの問題を分析するために必要なものです。

ジャーナルログがありませんか?すべきことは次のとおりです

ジャーナルログがない場合は、ディストリビューションでsystemdが使用されていることを確認してください。

systemdを使用する一部のLinuxディストリビューションでも、ジャーナルログはデフォルトでアクティブ化されていません。

/ var / log/journalが存在することを確認してください。そうでない場合は、作成します:

sudo mkdir /var/log/journal

また、/ etc / systemd / journald.confファイルの内容を確認し、Storageの値がautoまたはpersistentに設定されていることを確認する必要があります。

ログに疑わしいものがありますか?停止を拒否するプロセス/サービスはありますか?はいの場合、副作用なしに削除できるかどうか、または再構成できるかどうかを調査します。ここでやみくもに物を取り除いてはいけません。プロセスについての知識が必要です。

デフォルトの停止タイムアウトを減らすことでLinuxのシャットダウンを高速化[クイックフィックス]

シャットダウンのデフォルトの待機時間は通常90秒に設定されています。この期間が過ぎると、システムはサービスを強制的に停止しようとします。

Linuxシステムをすばやくシャットダウンする場合は、この待機期間を変更できます。

すべてのsystemd設定は、/ etc / systemd/system.confにある構成ファイルにあります。このファイルは、#で始まる多くの行で埋める必要があります。これらは、ファイル内のエントリのデフォルト値を表します。

何かをする前に、元のファイルのコピーを作成することをお勧めします。

sudo cp /etc/systemd/system.conf /etc/systemd/system.conf.orig

ここでDefaultTimeoutStopSecを探します。おそらく90秒に設定する必要があります。

#DefaultTimeoutStopSec=90s

この値を5秒や10秒などのより便利な値に変更する必要があります。

DefaultTimeoutStopSec=5s

ターミナルで構成ファイルを編集する方法がわからない場合は、次のコマンドを使用して、システムのデフォルトのテキストエディタ(Geditなど)で編集するファイルを開きます。

sudo xdg-open /etc/systemd/system.conf

DefaultTimeoutStopSecの前の#を削除することを忘れないでください 。ファイルを保存してシステムを再起動します。

これは、Linuxシステムのシャットダウン遅延を減らすのに役立ちます。

ウォッチドッグの問題!

Linuxには、特定のサービスが実行されているかどうかを監視するために使用されるwatchdogという名前のモジュールがあります。ソフトウェアエラーのためにシステムがハングした場合、システムを自動的に再起動するように構成できます。

システムを手動でシャットダウンまたは再起動できるため、デスクトップシステムでWatchdogを使用することはまれです。多くの場合、リモートサーバーで使用されます。

最初にウォッチドッグが実行されていることを確認します:

ps -af | grep watch*

システムでウォッチドッグが実行されている場合は、ShutdownWatchdogSecの値を10分からsystemd構成ファイル/etc/systemd/system.confのそれより低い値に変更できます。

おすすめの記事:

Linuxシステムの起動にかかる時間を調べる

Linuxシステムの起動にはどのくらい時間がかかりますか? systemd-analyzeコマンドを使用してそれを見つける方法は次のとおりです。

長時間のシャットダウンを修正できましたか?

このチュートリアルが、システムの長時間のシャットダウンの問題の調査と修正に役立つことを願っています。修正できた場合は、コメントでお知らせください。



Linux
  1. Linuxでシャットダウンおよび再起動コマンドを無効にする方法

  2. OSとLinuxのバージョンを確認する方法

  3. Linux でファイルシステムをマウントおよびアンマウントする方法

  1. Linuxのrebootおよびshutdownコマンド

  2. Linux システムの再起動日時を表示する方法

  3. 例を使用して Linux のシャットダウンおよび再起動コマンドを使用する方法

  1. Linuxシステムの起動にはどのくらい時間がかかりますか?

  2. LinuxシステムにGitをインストールして使用する方法

  3. Linux システムはどのくらい稼働していますか?