GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS / RHEL で Magic SysRq ツールを使用する方法

SysRq ユーティリティとは

カーネルがフリーズまたはハングした場合は、「魔法の」SysRq ツールを使用できます。 「魔法の」SysRq キーにより、Sync、Unmount、kill プロセス、showMem、showPc、reBoot など、いくつかの重要なカーネル コマンドに即座にアクセスできます。 Linux カーネルのドキュメントによると:

これは、コンソールが応答しなくても、他に何をしていてもカーネルが応答する、ヒットできる「魔法の」キーの組み合わせです。

SysRq を有効にする方法

SysRq キーは、「Magic SysRq」を設定することでアクティブ化できます。 kernel.sysrq を確認する必要があります。 sysctl.conf が適切に設定されている:

kernel.sysrq = 1 (SysRq turned ON)
kernel.sysrq = 0 (SysRq turned OFF)
注意 :CentOS/RHEL 7 では、「/usr/lib/sysctl.d/50-default.conf」に変更を加える必要があります。

上記の設定により、システムの起動後に SysRq がデフォルトで有効になります (デフォルトでは、CentOS/RHEL では無効になっています)。有効にするには、現在のセッションですぐに実行し、次のコマンドを使用します:

# echo 1 > /proc/sys/kernel/sysrq

再度無効にするには:

# echo 0 > /proc/sys/kernel/sysrq
注意 :SysRq を有効にすると、物理的なコンソール アクセスを持つユーザーが追加の機能を利用できるようになるため、問題のトラブルシューティングを行わない場合や、物理的なコンソール アクセスが適切に保護されていることを確認する場合は、SysRq を無効にすることをお勧めします。

SysRq イベントをトリガーする方法

SysRq イベントをトリガーするには、いくつかの方法があります。ほとんどのアーキテクチャでは、次のキーの組み合わせを使用してコンソールから SysRq イベントをトリガーできます:

Alt+PrintScreen+[CommandKey]

PrintScreen は、ほとんどの Linux システムで SysRq キーとして使用されるキーです。

応答しないシステムにアクセスするには、Alt+SysRq と H を押してオプションのリストを取得します。カーネルのバージョンが異なれば、オプションも異なる場合があります。現在のカーネルでサポートされているオプションを取得するには、root として以下のコマンドを実行できます:

# echo h > /proc/sysrq-trigger

dmesg の出力を確認します。以下は RHEL 7 システムの例です:

# dmesg
[ 4338.124035] SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(V) show-blocked-tasks(w) dump-ftrace-buffer(z)

SysRq イベントの種類

SysRq 機能が有効になるとトリガーできる SysRq イベントがいくつかあります。これらはカーネルのバージョンによって多少異なりますが、一般的に使用されるものがいくつかあります:

キー 機能
メモリ割り当てに関するダンプ情報
t スレッド状態情報をダンプ
p 現在の CPU レジスタとフラグをダンプする
c 意図的にシステムをクラッシュさせます (カーネルパニック)。 kdump を介して vmcore をキャプチャするのに役立ちます。
マウントされたすべてのファイルシステムを即座に同期
ただちにすべてのファイルシステムを読み取り専用で再マウント
b すぐにマシンを再起動
o すぐにマシンの電源を切ります (構成およびサポートされている場合)
f Out Of Memory Killer (OOM) を開始
w 中断できない (ブロックされた) 状態のタスクをダンプします

ルート シェルから SysRq イベントをトリガーする方法

マシンにルート シェルがある場合 (そしてシステムが十分に応答している場合)、コマンド キー文字を /proc/sysrq-trigger に書き込むこともできます。 ファイル。これは、システム コンソールを使用していないときにこの情報をトリガーする場合や、スクリプトからトリガーする場合に役立ちます。

# echo 'm' > /proc/sysrq-trigger

この方法には、kernel.sysrq の場合でも機能するという追加の利点があります。 は 0 に設定されています。

CentOS / RHEL 6 :kdump の設定方法
CentOS / RHEL 7 :kdump の設定方法


Cent OS
  1. CentOS/RHEL でカーネル セマフォの制限を変更する方法

  2. CentOS / RHEL 6 :kdump の設定方法

  3. CentOS / RHEL 7 :kdump の設定方法

  1. Centos8でSaltを使用する方法

  2. RedHatアップグレードツールを使用してCentOSを6.xからCentOS7にアップグレードする方法は?

  3. CentOS / RHEL 5 :kdump の設定方法

  1. CentOS 7 / RHEL 7にReaR(移行およびリカバリツール)をインストールして使用する方法

  2. CentOS / RHEL 6,7 :yum 履歴を使用して yum 更新をロールバックする方法

  3. CentOS/RHEL 7 および 8 で firewalld の代わりに iptables を使用する方法