某個終端卡死?直接關閉再開一個,最簡單了。
但是,我覺得這樣子不裝逼,非得找出原因才是。我現在遇到的情況是,我開了一個終端,然后我又ssh到機房的電腦上面,但是連接上去過了10多分鍾后這個連接就卡死了,ctrl+c都不能取消,這是連接卡死的問題,因此我就這樣子來做。
首先是再開一個新終端,然后查看第一個終端號,我用的是xshell,因此是偽終端類型,一般確定第一個終端號是用tty命令和w命令結合。比如我這里
[root@chaofeng ~]# w 17:43:59 up 5 days, 6:09, 5 users, load average: 0.00, 0.03, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 Thu11 2days 0.01s 0.01s -bash root pts/0 192.168.20.54 Mon17 1:01m 0.01s 0.01s -bash root pts/1 192.168.20.54 Mon19 1:01m 0.02s 0.02s -bash root pts/2 192.168.20.54 Sat22 7.00s 0.18s 0.00s w root pts/3 192.168.20.54 Sat11 7.00s 0.15s 0.11s -bash
看得出來我現在連接非常多,但是我怎么確定卡死的哪個終端號是多少呢?其實不好確定,只能一個個的嘗試了。我用下面這個命令
[root@chaofeng ~]# ps axjf | grep pts/3 971 58819 58819 58819 ? -1 Ss 0 0:03 \_ sshd: root@pts/3 58819 58821 58821 58821 pts/3 8593 Ss 0 0:00 | \_ -bash 58821 8593 8593 58821 pts/3 8593 S+ 0 0:00 | \_ ssh root@172.20.16.1 7839 9822 9821 7839 pts/2 9821 S+ 0 0:00 | \_ grep --color=auto pts/3
經過一系列的測試,我發現pts/3有一個連接遠程主機的子命令,這就是之前我連接的遠程主機,是沒有問題的。我現在只需要把ssh的這個kill掉即可。
第一列是PPID,第二列是PID,可不能找錯了,我們要kill的是PID,那么ssh遠程主機的PID號是8593,因此我們kill即可
[root@chaofeng ~]# kill -9 8593
ok,搞定了,我現在已經kill掉卡死的哪個終端的命令了,現在哪個終端可以使用了。