Windows環境ではCtrl+Alt+Delなどでタスクマネージャーを開いて何とかしますが、Linux(特にGUI使用時)の対処方法についてメモ
仮想コンソール
LinuxなどのUnix系OSには仮想コンソールがあらかじめ用意されている。
sshなどではなく直接筐体に接続している状態でCtrl+Alt+F1~F6を押すと仮想コンソールに遷移できる。
通常tty1~tty6までが用意されていて、F1~F6でtty1~tty6に遷移できる。
フリーズしたらまず最初に試してみる。
プロセスの強制終了
仮想コンソールへ遷移できた場合、使っていたコンソールがフリーズしていても、こちらはフリーズしていないことがある。
なので、仮想コンソール上でtopコマンドやpsコマンドを用いて、原因を取り除く。
topコマンドの例
top - 14:22:25 up 278 days, 21:45, 1 user, load average: 0.15, 0.17, 0.22
Tasks: 228 total, 2 running, 226 sleeping, 0 stopped, 0 zombie
%Cpu(s): 12.0 us, 9.3 sy, 0.0 ni, 78.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 7851060 total, 228080 free, 4032424 used, 3590556 buff/cache
KiB Swap: 7815164 total, 7813628 free, 1536 used. 3063580 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12568 git 20 0 392380 8400 5088 S 29.4 0.1 0:00.05 gitaly-wra+
12567 admin 20 0 162100 2300 1532 R 11.8 0.0 0:00.04 top
1769 git 20 0 1285012 525952 8496 S 5.9 6.7 18640:34 bundle
1778 gitlab-+ 20 0 41540 11948 1404 S 5.9 0.2 5733:07 redis-serv+
12575 git 20 0 318796 7208 5480 R 5.9 0.1 0:00.01 gitaly
1 root 20 0 191212 4068 2464 S 0.0 0.1 61:01.94 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:04.98 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+
6 root 20 0 0 0 0 S 0.0 0.0 4:11.34 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 5:19.72 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 528:46.28 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-dr+
11 root rt 0 0 0 0 S 0.0 0.0 2:00.08 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 1:59.80 watchdog/1
13 root rt 0 0 0 0 S 0.0 0.0 15:37.82 migration/1
14 root 20 0 0 0 0 S 0.0 0.0 8:18.07 ksoftirqd/1
ps au コマンド例
[admin@localhost ~]$ ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 61:01 /usr/lib/systemd/systemd --system --deserialize 23
2 ? S 0:04 [kthreadd]
4 ? S< 0:00 [kworker/0:0H]
6 ? S 4:11 [ksoftirqd/0]
7 ? S 5:19 [migration/0]
8 ? S 0:00 [rcu_bh]
9 ? S 528:46 [rcu_sched]
10 ? S< 0:00 [lru-add-drain]
11 ? S 2:00 [watchdog/0]
12 ? S 1:59 [watchdog/1]
13 ? S 15:37 [migration/1]
14 ? S 8:18 [ksoftirqd/1]
16 ? S< 0:00 [kworker/1:0H]
17 ? S 1:53 [watchdog/2]
原因のプロセスを発見したら、kill <PID>で強制終了する (出来ない場合はkill -9 <PID>も試す)
その他
それでもだめならsshなどで接続してみて再起動を試す。
Ctrl+Alt+Backspase でX Window Systemを再起動(GUIでフリーズした場合)
Ctrl+Alt+Deleteでシステムを再起動してみる
参考

仮想コンソール - Linux技術者認定 LinuC | LPI-Japan
Linuxを学習する上で出てくる素朴な疑問や、便利なテクニックなどを紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に...

Linux - GUI でマシンがフリーズした場合の対処法!
Linux マシンの GUI でフリーズした場合の対処方法についてのメモです。Unix 系 OS では、カーネルそのものが暴走することは非常に稀で、フリーズするならアプリケーションや X Window System の暴走によるものでしょう...



コメント