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

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

利用可能な 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 でうまくいきます。


以下は、有効なオプションを表示する 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

Linux
  1. Linuxで有効/ロードされているApacheモジュールを確認する方法

  2. 実行/インストールされているPostgresのバージョンを確認する方法

  3. Centos –どの特定のプロセス(Pythonスクリプト)が実行されているかを確認する方法は?

  1. SELinux が有効か無効かを確認する方法

  2. Hadoop デーモンが実行されているかどうかを確認する方法は?

  3. どのバージョンの nltk, scikit Learn がインストールされているかを確認するには?

  1. どのApacheモジュールが有効/インストールされているかを確認する方法は?

  2. Linuxでどのタイムゾーンを確認する方法は?

  3. Linux マシンでどのポートがビジーで、どのポートが空いているかを確認するにはどうすればよいですか?