在或许你也遇到这种状况,在管理或者别的时候,须要将某些用户的会话强制关闭。通常你们可能熟知的方法是查找该用户会话的全部进程,而后kill掉。这种方法大部分状况下是能够工做的。可是,若在用户会话非正常退出时,就难以达到效果了。bash
本文讲述两种方法,来删除指定用户的会话。均是能够在不知道用户进程号的状况下完成的,提升了工做效率。服务器
使用tty命令,查看本会话的会话号。不要将本身给kill掉了:.net
[root@localhost ~]# tty
/dev/pts/2进程
使用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 killallget
使用下面的两个命令,删除指定的会话。例如要删除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登录
和上面的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工作
呵呵,这个命令也搞定了咱们要解决的问题。须要了解更详细的内容,请使用man命令,查看手册。new