zl程序教程

您现在的位置是:首页 >  其它

当前栏目

xshell中某个终端卡死如何解决?

如何 解决 终端 某个 Xshell 卡死
2023-09-11 14:18:55 时间

某个终端卡死?直接关闭再开一个,最简单了。

但是,我觉得这样子不装逼,非得找出原因才是。我现在遇到的情况是,我开了一个终端,然后我又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掉卡死的哪个终端的命令了,现在哪个终端可以使用了。