Linux进程管理:用kill和killall命令杀死进程
在Linux系统上,我们可以用kill和killall命令来结束一个进程。下面分别来讲解kill和killall命令的用法以及两者的不同。
kill命令
如果通常的办法不能结束一个进程,那么我们可以用kill命令结束它。kill命令要与ps命令搭配使用,因为kill命令的参数是进程的pid,而我们得用ps命令来获取进程的pid。它的基本语法如下
kill pid
pid的全称是process identification number,即进程的pid号。当创建一个进程时,进程自动被分配一个pid号。我们可以用下面的命令来查看当前所有的进程以及pid
matrix@vivid:~$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 183140 4440 ? Ss 00:47 0:06 /sbin/init splash root 2 0.0 0.0 0 0 ? S 00:47 0:00 [kthreadd] root 3 0.4 0.0 0 0 ? S 00:47 4:31 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< 00:47 0:00 [kworker/0:0H] root 7 0.0 0.0 0 0 ? S 00:47 0:19 [rcu_sched] root 8 0.0 0.0 0 0 ? S 00:47 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S 00:47 0:08 [rcuos/0] root 10 0.0 0.0 0 0 ? S 00:47 0:00 [rcuob/0] root 11 0.0 0.0 0 0 ? S 00:47 0:00 [migration/0] root 12 0.0 0.0 0 0 ? S 00:47 0:00 [watchdog/0]
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
killall命令
我们也可以用killall命令来结束进程。killall命令的参数是进程名称,而不是pid号。例如:
killall firefox
如果你打开了两个相同名字的进程,比如打开了两个gedit窗口,那么
killall gedit
这条命令会结束所有的gedit窗口。如果你只想结束其中一个,那么你可以用kill命令,因为这两个gedit进程的pid号是不同的。
为这篇文章评分
[Total: 3 Average: 3.7]