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]

发表评论

电子邮件地址不会被公开。 必填项已用*标注