2010/05/06(Thu)超強制再起動
2010/05/06 23:06
そんなわけで、私が経験したことなのだけど、リモートPCにsshなりしてそこでカーネルモジュールの開発というのはかなりヒヤヒヤものである。一歩間違えば、カーネルがモジュールの解放待ちでdead lockを起こすなんて事も。
こうなると、shutdownやkill -9コマンドを使っても再起動できなくなる*1わけだが、物理的に電源スイッチを押せない状況の場合に、超強制再起動する方法があるので紹介。
Twitterに呟いたら割と短時間で赤favだったので、割と知られていないテクニックかな?
How to
$ su # echo b > /proc/sysrq-triggerこれだけ。
SysRqキーはLinuxにおいてはカーネルに低レベルメッセージを投げるための特殊なキーとして扱われることを利用している。
リモート越しだとキーを飛ばせないので、/procに実装されたソケットを使っているわけだが、詳しくはWikipediaを参照。
なお、syncなどの安全な電源を切る方法を一切無視して再起動するので、ファイルシステムが壊れたりなどの被害もあるかもしれない。開発機のみに限定して使った方がよさそう。