マジックSysRqキー

マジックSysRqキーは、Linuxカーネルでシステム状態に関する低レベルコマンドを発行するキーシーケンスである。
SysRqとその他のキーとを組み合わせて使用する。これはカーネル開発におけるデバッグ用であると同時に、しばしばシステムがフリーズした際に、その状態からの回復やファイルシステムを破損させることなくコンピュータを再起動させるために使用される。
用途.
サン・マイクロシステムズのOpen Firmware（OpenBoot）と同様のこのキーシーケンスは、ソフトウェア開発やトラブルからの回復を行うための以下のようなツールへのアクセスを提供する。
コマンドキー.
キーシーケンスは、Altキー、SysRqキーおよびその他のキー（コマンドキー）を同時に押下する。コマンドキーはキー配列によって異なる。また、キーボードにSysRqキーがない場合は、プリントスクリーンキーで代用する。
利用法.
設定.
本機能を使用するためには、カーネルがそのコンパイルオプションか、コンフィグレーションで有効にされてコンパイルされている必要がある。
 CONFIG_MAGIC_SYSRQ=y
また、/etc/sysctl.conf で有効にされていなければならない。一部のLinuxディストリビューションでは、ユーザが誤って操作してしまわないようにデフォルトで無効になっている。
kernel.sysrq = 0
となっていれば無効であり、
kernel.sysrq = 1
で有効になる。この設定変更を即座に適用するには、以下のコマンドを実行する。
sysctl -p
コマンドラインからのアクセス.
本機能は、カーネルのデバッグ用にキーボードハンドラの一部として実装された。また、procファイルシステムから使用することもできる。これにより、ヘッドレスシステムやリモートシステムでもシェルから利用できる。
kernel.sysrqパラメタで無効にされている場合、まずそれを有効にする。
echo 1 > /proc/sys/kernel/sysrq
マジックSysRqキーは、/proc/sysrq-trigger へコマンドキーを送ることで実行される。
echo b > /proc/sysrq-trigger
これは Alt + SysRq + b と同じであり、システムは再起動される。
リモートからのアクセス.
Linuxのデーモンとして動作するsysrqdは、TCP/IP（ポート4094、認証はプレーンテキストパスワード）を通してSysRqへのアクセス手段を提供する。
ハイパーバイザからのアクセス.
Xenでは、"xl" コマンドを使用してドメインにマジックコマンドを送信する機能を具備している。
再起動手順の語呂合わせ.
Linuxコンピュータがフリーズした場合にそれを安全に再起動させるためのマジックSysRqキーを押下する一連の手順を覚えるための語呂合わせがある。QWERTYまたはAZERTY配列では、"Raising Elephants Is So Utterly Boring"（ゾウを育てるって、もうとっても退屈）、"Reboot Even If System Utterly Broken"（リブートするよ。たとえシステムが完全に壊れてたとしても）、または単に "BUSIER" （busyの比較級）を逆から読む、といったものが使われている。これらは以下の操作を表す。
 unRaw （X Window Systemからキーボードの制御を取り戻す）
 tErminate （すべてのプロセスにSIGTERMシグナルを送り、正常に終了させる）
 kIll （すべてのプロセスにSIGKILLシグナルを送り、強制的に終了させる）
 Sync （書き込みキャッシュのデータをディスクに書き込む）
 Unmount （すべてのファイルシステムを読み込み専用で再マウントする）
 reBoot （システムを再起動する）
この手順で行えば、一部のプログラムのデータ損失を防ぎ、ファイルシステムの破損を回避することができる。
各コマンドは数秒間の時間を開けて投入しなければならない。例えば、多くのプログラムはSIGTERMシグナルを受け取るとデータの保存など処理を行い、syncやアンマウントはそれを行うためにある程度の時間を要する。
セキュリティ面での懸念.
このキーにより、キーボードやシリアルコンソールからシステムにアクセスできる誰にでも危険なシステムレベルのコマンドが利用可能となることが一部で懸念されている。