在Linux操作系统上,我们可以用kill和killall命令来结束一个进程。下面分别来讲解kill和killall命令的用法以及两者的不同。
1.kill命令
如果通常的办法不能结束一个进程,那么我们可以用kill命令结束它。kill命令要与ps命令搭配使用,因为kill命令的参数是进程的pid,而我们得用ps命令来获取进程的pid。它的基本语法如下:
kill pid
pid的全称是process identification number,即进程的pid号。当创建一个进程时,进程自动被分配一个pid号。我们可以用下面的命令来查看当前所有的进程以及pid:
ps aux命令以id号从小到大来排序。我们可以用下面的命令来查看某个进程的pid。比如firefox:
matrix@vivid:~$ ps aux | grep firefox
matrix 21668 87.0 5.2 1067388 311500 ? Rl 18:29 0:05 /usr/lib/firefox/firefox
杀死firefox进程:
matrix@vivid:~$ kill 21668
matrix@vivid:~$
kill命令可以给进程发出64种不同的信号,可以用下面的命令列出所有可用的信号。
kill -l
kill命令最常见的5种信号如下:
数字1信号:结束进程后以相同的pid号重启进程
数字2信号:这是最微弱的信号,只是暂停(interrupt)一个进程,相当于Ctrl+C快捷键
数字3信号:这个信号不但会结束进程,还会引起 core dump
数字9信号:绝对(absolute)杀死信号,这是最强的杀死信号,将进程发送到/dev/null设备以强制结束进程
数字15信号:默认的信号,如果没有为kill命令指定信号,那么发出的就是15信号
如果要发送9信号以结束pid号为1069的进程,使用下面的命令
kill -9 1069
2.killall命令
我们也可以用killall命令来结束进程。killall命令的参数是进程名称,而不是pid号。例如:
killall firefox
如果你打开了两个相同名字的进程,比如打开了两个gedit窗口,那么
killall gedit
这条命令会结束所有的gedit窗口。如果你只想结束其中一个,那么你可以用kill命令,因为这两个gedit进程的pid号是不同的。