Kotaです。
LinuxがRebootもShutdownも受け付けなくなった時、、
パワーボタン長押し?Ctrl+Alt+Delもうけつけない?
どーします?どっちみちFilesystemの破損が怖いですよね。。
強制パワーダウンの前に、、方法があります。キーボードをよーく見てみてください。
画像のSysreqというキーがあります。たぶんほとんど使った事ないと思いますw
だけどもこいつはなかなかスグレモノです。
KernelPanic以外ならプロセスが暴走してようがKernelに割り込み処理を行えます。
よーは比較的安全にShutdownができます。
もちろんどーしようも無い時の最終手段ですが電源落としより安全です。
しかしこいつを使うには大抵のインストール時には無効化されています。
下記コマンドで有効化します。
# echo 1 > /proc/sys/kernel/sysrq
もしくは、
/etc/sysctl.confで
Kernel.sysrq = 1
を追記してsysctl -pです。
これでMagic System Requestが使えるようになります。
操作方法は、、ココから拝借
キーの種類 | SysRqヘルプ表示 | 動作内容 |
---|---|---|
0-9 | loglevel0-8 | ログレベル操作 (/proc/sys/kernel/printk と同じ) |
b | reBoot | システムリブート |
c | Crash | カーネルパニックを発生させる |
e | tErm | init以外の全プロセスにSIGTERMシグナル送信 |
i | kIll | init以外の全プロセスにSIGTERMシグナル送信 |
k | saK | 仮想端末上の全プロセスにSAK(Secure Attention Key)を実行 |
m | showMem | メモリ情報表示 |
p | showPc | カレントプロセスの情報(バックトレース)表示 |
r | unRaw | キーボードrawモードをXLATEに設定 |
s | Sync | マウントされている全ファイルシステムのsync |
t | showTasks | 全プロセスの情報(バックトレース)表示 |
u | Unmount | readonlyで全ファイルシステムの再マウント |
w | shoWcpus | 全CPUのコールトレース情報表示 |
具体的にどうするの??
Alt+PrtScrnを押してから上記のキーを押します。
- Atl+PrtScrn+sでバッファをHDDに落とし(Sync処理)
- Atl+PrtScrn+uでファイルシステムをアンマウント&ReadOnlyでマウント
- Atl+PrtScrn+bでReboot
これで少なくとも強制パワーダウンより安全に再起動が可能です。
ssh越しとかにやるには?
もちろん方法があります。
- echo s > /proc/sysrq-triggerでバッファをsync
- echo u > /proc/sysrq-triggerでアンマウント&ReadOnlyでマウント
- echo b > /proc/sysrq-triggerで強制Reboot
こんな感じです。
あ?常識だぜ!って思われる方もいらっしゃるかもしれませんがそだったらスイマセン
お役に立てれば幸いです。