linux下终止用户会话二法

来源:岁月联盟 编辑:exp 时间:2011-10-28

 

或许你也遇到这种情况,在管理或者别的时候,需要将某些用户的会话强制关闭。一般大家可能熟知的方法是查找该用户会话的所有进程,然后kill掉。这种方法大部分情况下是可以工作的。但是,若在用户会话非正常退出时,就难以达到效果了。

 

本文讲述两种方法,来删除指定用户的会话。均是可以在不知道用户进程号的情况下完成的,提高了工作效率。

 

使用tty命令,查看本会话的会话号。不要将自己给kill掉了,那是日本人喜欢做的事,不是我们大汉民族的所作所为:

 

[root@localhost ~]# tty

/dev/pts/2

[root@localhost ~]#

 

使用w命令,查看当前有那些会话登录在服务器上。

[root@localhost ~]# w

21:42:34 up 2:37, 5 users, load average: 0.44, 0.55, 0.70

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     :0       -                19:15   ?xdm? 36:42   0.09s /bin/sh /usr/bin/startkde

root     pts/1    :0               19:15    2:26m 0.00s 3.09s kded --new-startup

root     pts/2    :0               21:40    0.00s 0.07s 0.02s w

root     pts/4    :0               21:19   19:12   0.16s 0.01s man pkill

root     pts/6    :0               21:28   12:51   0.11s 0.02s man killall

[root@localhost ~]#

 

使用下面的两个命令,删除指定的会话。例如要删除pts/4的会话:

 

[root@localhost ~]# skill -KILL -v pts/4

pts/4    root     24670 bash

[root@localhost ~]# w

21:45:43 up 2:40, 4 users, load average: 0.35, 0.52, 0.66

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     :0       -                19:15   ?xdm? 36:59   0.09s /bin/sh /usr/bin/startkde

root     pts/1    :0               19:15    2:29m 0.00s 3.23s kded --new-startup

root     pts/2    :0               21:40    0.00s 0.06s 0.01s w

root     pts/6    :0               21:28   16:00   0.11s 0.02s man killall

[root@localhost ~]#

 

和上面的w命令相比,我们发现已经少了pts/4,证明pts/4的会话已经被我们kill掉了。

skill这个命令比较古老了。man手册建议使用新的命令pkill:

 

这次我们kill掉pts/3的会话:

[root@localhost ~]# w

21:50:34 up 2:45, 5 users, load average: 0.53, 0.53, 0.62

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     :0       -                19:15   ?xdm? 37:21   0.09s /bin/sh /usr/bin/startkde

root     pts/1    :0               19:15    2:34m 0.00s 3.35s kded --new-startup

root     pts/2    :0               21:40    0.00s 0.06s 0.01s w

root     pts/6    :0               21:28   20:51   0.11s 0.02s man killall

root     pts/3    :0               21:46    3:56   0.04s 0.03s /bin/bash

[root@localhost ~]# pkill -9 -t pts/3

[root@localhost ~]# w

21:50:58 up 2:45, 4 users, load average: 0.54, 0.53, 0.62

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     :0       -                19:15   ?xdm? 37:23   0.09s /bin/sh /usr/bin/startkde

root     pts/1    :0               19:15    2:35m 0.00s 3.35s kded --new-startup

root     pts/2    :0               21:40    0.00s 0.07s 0.01s w

root     pts/6    :0               21:28   21:15   0.11s 0.02s man killall