web-dev-qa-db-ja.com

SysRqキーは何をしますか?

私のキーボードでは、FロックがオンのときにPrint Screenキーとして機能するキーの下に「SysRq」があります(おそらくFロックがオフのときに使用されます)。それは何ですか、何をしますか?

28
RCIX

SysRq 低レベルのイベントを開始するためのクロスプラットフォームの方法を持つ方法として、IBM PCキーボードで導入されました。キーを入力すると、それらはバッファに入れられ、定期的にフラッシュされます。マシンがロックする場合、キーボードは機能しません。

の SysRq 重要なのは、基本的には、コマンドを強制的にコンピューターに送信し、バッファーをバイパスして、低レベルの呼び出しをトリガーすることでした。通常はRESETイベント。

ただし、各OSはこのキーを無視し、適切な組み合わせのキーストロークを使用して、コンピューターをリセットするのではなく、OSを実行したままにできるような「タスクマネージャー」のようなインターフェイスを開始します。

BIOSからではなく、ホストOSからアプリケーションを実行する方がはるかに一般的です。 1980年代はそうではありませんでした:-)

18

の SysRq keyは、低レベルのTerminate and Stay Resident(TSR)プログラムがキーボードバッファに直接アクセスして変更できる時代のパーソナルコンピュータの初期に発明されました。このキーはバッファをバイパスし、MSDOSオペレーティングシステムに直接アクセスできるようにしました。

今日、このキーはBIOSおよびWindowsによって無視されます。それはに降格されました Prt Scn キーとによってアクティブ化されます Alt+Prt Scn。上記のようにアクセスすることはできますが、Lenovoなどの一部の製造元では、キーボードでマークを付けていません。

一部の古いデバッガーは、このキーをブレーク実行キーとして使用していましたが、これはもう存在しません。

Linuxでもキーは存在し、カーネルのビルド時にCONFIG_MAGIC_SYSRQカーネルオプションを指定する必要があります。これは、次のコマンドを入力して確認できます。

$ cat /proc/sys/kernel/sysrq
176

ほとんどの場合、コマンドは176の値を返します。各ビットは1つの関数を表します。

0 - disable sysrq completely
1 - enable all functions of sysrq
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 signaling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
256 - allow nicing of all RT tasks

0の値はすべてのSysRq関数を無効にし、1の値はそれらすべてを有効にします。実行中の値は、たとえば次のコマンドで変更できます。

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

すべてのコマンドキーシーケンスの中で、REISUBが最も有名です。 Alt+Prt Scn キーを押し、次のキーを順番に押す:

  • r:キーボードをrawモードからXLATEモードに切り替えます
  • e:SIGTERMシグナルをすべてのプロセスに送信し、可能であれば正常に終了します
  • i:SIGKILLシグナルを送信して、応答しなかったプロセスを終了します
  • s:マウントされたすべてのファイルシステムを同期し、キャッシュされたすべてのディスク変更をフラッシュします
  • u:すべてのファイルシステムを読み取り専用で再マウントします
  • b:システムを再起動します。

参照:

5
harrymc

さまざまなことを実行できるようにプログラム可能なキーです。

古いIBM端末でいくつかの用途があったことを覚えています。一部のDOSプログラムでは、これをソフトリセットの形式で使用していました。

3
Rook

Linuxでは、それでも非常に便利な機能を提供します。

https://en.wikipedia.org/wiki/Magic_SysRq_key

2
pgoetz