どのSysRq機能が有効になっているかを確認する方法は?


15

ファイルに/proc/sys/kernel/sysrqは、次のような単一の番号が含まれています。

  • 1 (すべてのSysRqコマンドを有効にする)、
  • 0 (すべて無効にします)、
  • または、バイナリビットマスクとして機能し、機能のサブセットを有効にする10進数の正の整数。

ビットマスクがに設定されている場合、どのSysRq関数が許可/禁止される438か教えてください。


$ cat /proc/sys/kernel/sysrq
438

回答:


22

利用可能なSysRq関数は次のとおりです。

0 - disable every SysRq function.
1 - enable every SysRq function.
2 - enable control of console logging level
4 - enable control of keyboard (SAK, unraw)
8 - enable debugging dumps of processes etc.
16 - enable sync command
32 - enable remount read-only
64 - enable signalling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
256 - allow nicing of all RT tasks

438= 2 + 4 + 16 + 32 + 128 + 256、したがって、それらの番号に関連付けられた関数のみが許可されます。それについてのすべてをドキュメントで読んでください

438ベース2(110110110)に変換すると、さらに見やすくなります。

1     1     0    1    1    0   1   1   0
^256  ^128  ^64  ^32  ^16  ^8  ^4  ^2  ^1

ディストリビューションによっては、CONFIG_MAGIC_SYSRQ次のコマンドを使用してカーネルがコンパイルされたかどうかを確認できる場合があります。

$ grep SYSRQ /boot/config-$(uname -r)

これはUbuntuで動作します。


ああ、それは個々のビットマスクの線形結合です。どうもありがとう。
user001

1つのフォローアップ:Alt + SysRq +(コマンドキー)を実行しても何も起こらない場合、これはカーネルのインストール時にsysrqが有効になっていないことを意味すると考えられます。sysrqが有効になっているかどうかを確認する簡単な方法はありますか(たとえば、CONFIG_MAGIC_SYSRQどこかのステータスを見つけることができますか)。
user001

3
をチェックする方法を追加しましたCONFIG_MAGIC_SYSRQ
ウィリアムジャクソン

ありがとう。Debianでも私のために働きました。出力:CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_MASK=0x01b6(16進数の01b6は10進数の438)。私yはそれが有効になっていることを意味すると思います。可能であれば、2回のアップ投票を行います。
-user001

1
多くのLinuxディストリビューションでは、構成はでなくカーネル自体に保持される/bootため、checkコマンドはzgrep SYSRQ /proc/config.gz(またはgunzip -c /proc/config.gz | grep SYSRQ)になります。
user1686

2

有効なオプションを表示するBashのワンライナーを次に示します。

for i in $(seq 1 8); do (( ($(</proc/sys/kernel/sysrq) & $((1<<$i))) > 0 )) && echo $((1<<$i)); done

ビットマスクが438に設定されている場合、どのSysRq関数が許可/禁止されますか?

$ for i in $(seq 1 8); do (( (438 & $((1<<$i))) > 0 )) && echo $((1<<$i)); done
2
4
16
32
128
256

意味については、ウィリアムの答えを参照してください。


すべてのオプションを有効にするには、次を実行します。

echo 1 | sudo tee /proc/sys/kernel/sysrq

永続化するには、次を実行します。

echo kernel.sysrq=1 | sudo tee /etc/sysctl.d/20-sysrq.conf
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.