マジックSysRqキーで強制的に/安全にサーバを再起動する
Linuxがフリーズした場合に、マジックSysRqキーを使ってLinuxを再起動することがあります。今回はマジックSysRqを使って、強制的に、もしくは安全にLinuxを再起動する方法をご紹介します。
目次
強制的に再起動する
以下のコマンドを実行します。
1 |
# echo b > /proc/sysrq-trigger |
これですぐに再起動します。ファイルシステムのsyncやアンマウントは行われないので安全な方法ではありません。
ただし、マジックSysRqキーが有効になっている必要があります。以下のようになっていると、再起動は実行されません。マジックSysRqキーが無効な状態です。デフォルトでは無効になっています。
1 2 |
# cat /etc/sysctl.conf | grep sysrq kernel.sysrq = 0 |
この場合、以下のようにしてあげれば有効となる。
1 |
# echo 1 > /proc/sys/kernel/sysrq |
マジックSysRqキーが有効な状態です。
1 2 |
# cat /etc/sysctl.conf | grep sysrq kernel.sysrq = 1 |
再起動後にも設定を有効にする場合は以下を実行する。
1 |
# sysctl -p |
コマンドだけでなく、キー操作でも同じことができます。
1 |
「Altキー」と「SysRqキー」を押しながら、「b」を押す |
「SysRqキー」といわれても、あまりピンとこないかも知れません。でも、実はちゃんとキーボードへ割り当てられています。後述しますが、「SysRqキー」は「Print Screenキー」と同じキーに割り当てられていることが多いように思います。
ここの「b」は「echo b」と入力した「b」です。
安全に再起動する
以下のとおり実行します。
1 |
「Altキー」と「SysRqキー」を押しながら、「REISUB」と順に押す |
※マジックSysRqキーが有効になっている必要があります。
「REISUB」は一文字づつ、ゆっくりと入力する必要があります。
なお、「REISUB」の意味ですが以下の赤字部分を繋げた文字になります。
unRaw(X Window Systemからキーボードの制御を取り戻す)
tErminate(すべてのプロセスにSIGTERMシグナルを送り、正常に終了させる)
kIll(すべてのプロセスにSIGKILLシグナルを送り、強制的に終了させる)
Sync(書き込みキャッシュのデータをディスクに書き込む)
Unmount(すべてのファイルシステムを読み込み専用で再マウントする)
reBoot(システムを再起動する)
※マジックSysRqキーのWikiより引用
SysRqキーのキーボードへの割り当て
キーボードにある謎の印字「Sys Rq」。「この印字、何だろう?」と思われていた方もいらっしゃると思いますが、今回のような場合に活躍するキーなのです。
どういったキーに割り振られているのか、手元にあるキーボード4種で確認してみましたので、以下ご紹介します。
「REALFORCE91UBK-S」の場合
「Print Screen」キーに「Sys Rq」と印字されています。
「Thinkpad x220」の場合
「PrtSc(Print Screen)」キーに「Sys Rq」と印字されています。
「Let’s note CF-SX1」の場合
「F11」キーに「Sys Rq」と印字されています。「PrtSc(Print Screen)」は「F12」に割り当てられています。
Macbook Proの場合
なんと、「SysRqキー」の割り当てがありません!
「mac SysRq」で検索すると色々と情報がでてきますが、このままでは使えないようです。
今回は深追いせず、ここまでとさせて頂きます。