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 の暴走によるものでしょう...
コメント