再起動が必要だが、作業中のデータ消失やシステム破壊のリスクを下げられる?
参考
- https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AFSysRq%E3%82%AD%E3%83%BC
- https://www.linuxmania.jp/shortcut.html
使い方
Raspbianがメモリ不足でフリーズしたとする。このとき以下のようにマジックSysRqキーを用いて復旧する。
Alt
+SysRq
+S
: ファイルシステムをsyncするAlt
+SysRq
+E
: 全プロセスを終了するCtrl
+Alt
+T
でターミナルを起動し、sudo reboot
で再起動する
なお、SysRq
キーがない場合はPrtSc
キーで代用する。
1. Alt
+ SysRq
+ S
: ファイルシステムをsyncする
メモリ上にある状態とディスクを同期する。つまりデータを保存する。
2. Alt
+ SysRq
+ E
: 全プロセスを終了する
これで終了しないなら、Alt
+ SysRq
+ I
で強制終了する。
30秒近く画面が真っ暗になる。しばらく待つとデスクトップが立ち上がり、以下のようなエラーダイアログが出る。
システムがまともに動かない状態。再起動が必要。その前に/tmp
などRAMディスクにファイルがあるなら、バックアップしておくこと。最後にもう一度ファイルシステムをsyncさせておく。
ここで注意なのは、たぶん60秒周期くらいで全プロセスを強制終了させられること。バックアップ作業途中で急にアプリが終了し、デスクトップ画面になって驚いた。めげずにやる。
3. Ctrl
+ Alt
+ T
でターミナルを起動し、sudo reboot
で再起動する
$ sudo reboot
再起動する。これで復旧完了。
なお、メインメニューのShutDownから再起動や終了をしようとしても反応しない。また、sudo
をつけてreboot
しないとエラーになって実行されない。マジックSysRqキーを使うと、そういう状態になるようだ。
効果
作業中のデータ消失やシステム破壊する確率を下げられる。
過去、電源からぶっこ抜くことを何度も繰り返しているうちに、システムが徐々におかしくなってまともに動かなくなったことがあった。こんな悲劇を避けられるかもしれない。
- http://ytyaru.hatenablog.com/entry/2019/07/18/000000
- http://ytyaru.hatenablog.com/entry/2019/07/18/000000
これまでと比べてかなり手早く安全に復旧できるようになった。
予防方法
メモリ消費を減らす。
- アプリを同時に立ち上げない
- ブラウザとエディタを交互に起動させる
- アプリの再起動に手間と時間がかかるが仕方ない
- ブラウザとエディタを交互に起動させる
- ブラウザのタブを減らす(最大でも5個以内)
- RAMディスクのファイルを削除する
この辺の塩梅は使っているうちに掴めてくる。でも、調べものをしているうち、夢中になってタブやエディタを開きまくり、フリーズに至る。
ダメだった対処方
対処 | 問題 |
---|---|
電源ぶっこ抜き | システム破損してOS再インストールする羽目になった |
アプリの☓ ボタンクリック |
稀に効くことがあるが、時間がかかる。これでアプリ終了させて復旧したこともしばしばある |
Ctrl + F4 |
フリーズ中のせいかキー入力を受け付けられない |
Ctrl +Alt +Delete |
応答せず。フリーズ中だもの |
Ctrl +Alt +F2 , ps aux , kill |
ターミナルモードにならない、ログインしようとしてもタイムアウトする(フリーズで遅いせい?)、ps , kill から毎回探すの大変 |
事実上、電源ぶっこ抜き以外にない。20分くらい待てば復旧するときもあるし、1時間以上経っても復旧しないときもある。
所感
メモして手元においておくことで、フリーズした時に対処できた。これからはマジックSysRqキーで復旧しよう。