こんな方法があるとは知らなかった。
対象環境
- Raspberry Pi 3 Model B+
- Raspbian stretch 2018-06-27
手順
- ターミナルモードで起動する(
Ctrl
+Alt
+F2
) - ログインする
- プロセスIDを一覧する
- 対象プロセスを
kill
する - Windowモードに戻る(
Ctrl
+Alt
+F7
)
1. ターミナルモードで起動する
Ctrl
+Alt
+F2
キーでターミナルモードに移行する。
2. ログインする
raspberrypi login: pi Passworkd:
Raspbianをインストールしたときデフォルト設定なら、ユーザ名はpi
、パスワードはraspberry
。
なお、パスワード入力するときはタイピングした文字が表示されない。よくある*********
みたいな表示にもならない。わかりにくいので注意しながらタイプすべし。
3. プロセスID一覧する
$ ps ax
PID TTY STAT TIME COMMAND 1 ? Ss 0:07 /sbin/init splash ...
後述するが以下でメモリ使用率の高い順に表示できる。
$ ps aux --sort -rss
4. 対象プロセスをkill
する
$ kill <PID>
ps ax
コマンドで調べたPIDのプロセスを強制終了する。
5. Windowモードに戻る
Ctrl
+Alt
+F7
キーでWindowモードに移行する。
情報源
実践
try 1
フリーズしたので試そうとしたが、手順をネットで調べられない。なにせフリーズしてますから……。
対策:紙に手順をメモる
try 2
フリーズしたので試したが、まず最初のキー入力を受け付けてくれなかった。そりゃフリーズだものね……。結局、CPUの冷却&20分以上待っていたら復帰した。(キー入力は無かったことにされていた)
本当にフリーズしていたらそもそもターミナルモードに移行するキー入力を受け付けない。どうしろと……。
try 3
フリーズしたので試すと成功。ただ、ps ax
コマンドの結果が長すぎて見切れてしまい、kill
すべきプロセスIDを見ることができない場合がありそう。そこで、more
コマンドでページ表示してみる。
$ ps ax | more
キー | 機能 |
---|---|
q | 終了 |
Enter | 1行ずつ進む |
Space | 1ページすつ進む |
さらに、u
でCPUやメモリ使用率を表示させる。f
でツリー表示。
$ ps auxf | more USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ...
メモリ使用率でソート。これで一番上のやつをkillすれば復旧できそう。
$ ps aux --sort -rss USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND