/********************************************************************* * Author : Samson * Date : 11/04/2014 * Test platform: * 3.13.0-24-generic * GNU bash, 4.3.11(1)-release * *******************************************************************/
fuser: 显示使用特殊文件或文件系统的进程号并可选择是否进行kill,由于在GNU Linux中不论什么的文件或设备都看作是一个文件,所以这里说的特殊文件包含但不仅限于一个文件夹、一个打开的终端、一个打开的文件、一个共享库、一个进行了nmap的文件、一个正在读写的文件。
以下就使用fuser进行kill一个终端的样例。 在X-windows level下,在使用了ctrl+alt+F1后。进入了命令行模式的终端,在里面打开了emacs后,进行了ctrl+alt+F8切换回X-windows的操作,在这个时候使用w命令查看当前登录了的终端,例如以下: ufo@ufo:~$ w 11:41:53 up 10 days, 22:46, 9 users, load average: 0.41, 0.40, 0.44 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ufo tty1 11:35 6:17 1.48s 1.11s emacs ufo tty8 :0 2410月14 10days 6:42m 1.44s gnome-session --session cinnamon ufo pts/0 :0 四15 37:37 0.81s 0.81s bash ufo pts/1 :0 四16 4days 0.40s 0.40s bash ufo pts/5 :0 四16 18:05m 24.21s 5.43s bash ufo pts/6 :0 四16 4days 1.57s 1.57s bash ufo pts/7 :0 一17 1.00s 1.23s 6:46 gnome-terminal ufo pts/8 :0 四16 4days 1.21s 1.21s bash ufo pts/9 :0 10:18 1:23m 0.12s 6:46 gnome-terminal 能够看出tty1即是刚才打开emacs的那个终端,在这个时候想直接把它给关闭掉,那么肿么办喃? 这个时候就能够使用强大的fuser命令了。使用此命令能够进行查看要关掉的终端当前的username及进程号: tty1相应的设备名为/dev/tty1 ufo@ufo:~$ fuser -u /dev/tty1 /dev/tty1: 8137(ufo) 8252(ufo) 这时能够看到当前使用tty1的用户为ufo, 那么怎样终止掉这个进程呢? 使用例如以下命令就可以: ufo@ufo:~$ fuser -u /dev/tty1 -k /dev/tty1: 8137(ufo) 8252(ufo) 再次使用w命令进行终端的查看: ufo@ufo:~$ w 11:42:30 up 10 days, 22:47, 9 users, load average: 0.23, 0.36, 0.43 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ufo tty8 :0 2410月14 10days 6:42m 1.44s gnome-session --session cinnamon ufo pts/0 :0 四15 38:14 0.81s 0.81s bash ufo pts/1 :0 四16 4days 0.40s 0.40s bash ufo pts/5 :0 四16 18:05m 24.21s 5.43s bash ufo pts/6 :0 四16 4days 1.57s 1.57s bash ufo pts/7 :0 一17 6.00s 1.33s 6:47 gnome-terminal ufo pts/8 :0 四16 4days 1.21s 1.21s bash ufo pts/9 :0 10:18 1:23m 0.12s 6:47 gnome-terminal 以上可看出已经将tty1进程终止了; 至于其他的好玩的就仅仅有自己去man一下子。