学习啦>学习电脑>操作系统>Linux教程>

linux中的kill命令的详细解释

时间: 佳洲1085 分享

  linxu下的kill命令主要功能是用来杀死进程的。下面由学习啦小编为大家整理了linux的kill命令的详细解释的相关知识,希望对大家有帮助!

  一、linux中的kill命令的详细解释

  1.命令格式:

  kill[参数][进程号]

  2.命令功能:

  发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

  3.命令参数:

  -l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

  -a 当处理当前进程时,不限制命令名和进程号的对应关系

  -p 指定kill 命令只打印相关进程的进程号,而不发送任何信号

  -s 指定发送信号

  -u 指定用户

  注意:

  1、kill命令可以带信号号码选项,也可以不带。如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源。也可以用kill向进程发送特定的信号。例如:

  kill -2 123

  它的效果等同于在前台运行PID为123的进程时按下Ctrl+C键。但是,普通用户只能使用不带signal参数的kill命令或最多使用-9信号。

  2、kill可以带有进程ID号作为参数。当用kill向这些进程发送信号时,必须是这些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。

  3、可以向多个进程发信号或终止它们。

  4、当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。有时这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,才会显示出来。

  5、应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。

  二、linux中的kill命令的详解实例

  (1)强行中止(经常使用杀掉)一个进程标识号为324的进程:

  #kill -9 324

  (2)解除Linux系统的死锁

  在Linux中有时会发生这样一种情况:一个程序崩溃,并且处于死锁的状态。此时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可。当kill处于X-Window界面时,主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端,在那里中止有问题的程序。比如,如果Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的 PID,然后使用kill命令停止这个程序:

  #kill -SIGKILL XXX

  其中,XXX是包含有Mozolla浏览器的程序的进程标识号。

  (3)使用命令回收内存

  我们知道内存对于系统是非常重要的,回收内存可以提高系统资源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序。例如,使用top命令发现一个无用 (Zombie) 的进程,此时可以使用下面命令:

  #kill -9 XXX

  其中,XXX是无用的进程标识号。

  然后使用下面命令:

  #free

  此时会发现可用内存容量增加了。

  (4)killall命令

  Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:

  # killall -HUP inetd

  三、linux的kill命令的常用命令

  常用命令

  1.$ kill -15 pid

  这条命令发信号让进程正常退出。所谓的正常退出是指按应用程序自己的退出流程完成退出,这样就可以清理并释放资源。比如 vim 程序,如果是正常的退出,就会删除掉临时文件 *.swp。

  既然信号 15 是退出进程的正确方式,那它也应该是最常用的方式,因而我们可以省略参数 -15。

  2.$ kill pid

  这条命令和上面的命令是等价的,kill 命令默认发送信号 15 给目标进程。

  当进程出现了异常状况,不能通过信号15正常退出时,我们就需要通过非常的手段直接终结掉进程。所谓的非常手段就是传递信号 9 给目标进程!

  3.$ kill -9 pid

  这样结束掉的进程不会进行资源的清理工作,所以如果你用它来终结掉 vim 的进程,就会发现临时文件 *.swp 没有被删除。

3635385