【Unix/Linux】【命令】【进程】终止进程 —— kill,killall命令
2014-08-31 01:24
489 查看
kill命令
Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。
kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。
命令格式:
kill [参数] 进程号
命令功能:
发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。如果无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
当用kill向这些进程发送信号时,必须是这些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。
可以向多个进行发信号/终止它们。
命令参数:
-l 信号 —— 若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a —— 当处理当前进程时,不限制命令名和进程号的对应关系
-p —— 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s —— 指定发送信号
-u —— 指定用户
使用示例:
实例1:杀掉指定进程
kill 进程号
实例2:彻底杀死进程
kill -9 进程号
实例3:列出所有信号名称
killall命令
Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一。
命令格式:
killall [参数] 进程名
命令功能:
用来结束同名的的所有进程。
命令参数:
-Z 只杀死拥有scontext 的进程
-e 要求匹配进程名称
-I 忽略小写
-g 杀死进程组而不是进程
-i 交互模式,杀死进程前先询问用户
-l 列出所有的已知信号名称
-q 不输出警告信息
-s 发送指定的信号
-v 报告信号是否成功发送
-w 等待进程死亡
--help 显示帮助信息
--version 显示版本显示
使用示例:
实例1:杀死所有同名进程
命令:
killall vi
输出:
[root@localhost ~]# ps -ef|grep vi root 17581 17398 0 17:51 pts/0 00:00:00 vi test.txt root 17611 17582 0 17:51 pts/1 00:00:00 grep vi [root@localhost ~]# ps -ef|grep vi root 17581 17398 0 17:51 pts/0 00:00:00 vi test.txt root 17640 17612 0 17:51 pts/2 00:00:00 vi test.log root 17642 17582 0 17:51 pts/1 00:00:00 grep vi [root@localhost ~]# killall vi [root@localhost ~]# ps -ef|grep vi root 17645 17582 0 17:52 pts/1 00:00:00 grep vi
实例2:向进程发送指定信号
命令:
[root@localhost ~]# ps -ef|grep vi root 17581 17398 0 17:51 pts/0 00:00:00 vi test.txt root 17611 17582 0 17:51 pts/1 00:00:00 grep vi [root@localhost ~]# ps -ef|grep vi root 17581 17398 0 17:51 pts/0 00:00:00 vi test.txt root 17640 17612 0 17:51 pts/2 00:00:00 vi test.log root 17642 17582 0 17:51 pts/1 00:00:00 grep vi [root@localhost ~]# killall vi [root@localhost ~]# ps -ef|grep vi root 17645 17582 0 17:52 pts/1 00:00:00 grep vi
输出:
[root@localhost ~]# vi & [1] 17646[root@localhost ~]# killall -TERM vi [1]+ Stopped vi [root@localhost ~]# vi & [2] 17648[root@localhost ~]# ps -ef|grep vi root 17646 17582 0 17:54 pts/1 00:00:00 vi root 17648 17582 0 17:54 pts/1 00:00:00 vi root 17650 17582 0 17:55 pts/1 00:00:00 grep vi [2]+ Stopped vi [root@localhost ~]# killall -TERM vi [root@localhost ~]# ps -ef|grep vi root 17646 17582 0 17:54 pts/1 00:00:00 vi root 17648 17582 0 17:54 pts/1 00:00:00 vi root 17653 17582 0 17:55 pts/1 00:00:00 grep vi [root@localhost ~]# killall -KILL vi [1]- 已杀死 vi [2]+ 已杀死 vi [root@localhost ~]# ps -ef|grep vi root 17656 17582 0 17:56 pts/1 00:00:00 grep vi [root@localhost ~]#
相关文章推荐
- Linux进程控制命令之kill与killall
- Linux 下用ps查找进程并用kill终止命令详解
- Linux下ps查找进程用kill终止命令
- linux中的kill命令及强制终止进程的方法
- linux中的kill命令 及 强制终止进程的方法
- 我使用过的Linux命令之kill - 终止进程/发送信号
- Linux之ps查找进程用kill终止命令
- linux kill命令参数及用法详解--linux终止进程命令
- Linux用ps命令查找进程PID再用kill命令终止进程的方法
- linux kill 如何一次终止同一名字的多个进程 killall
- linux杀死进程的命令(kill,killall,pkill,xkill)
- Linux命令-终止进程命令:kill
- 收藏老文章 Linux下ps查找进程用kill终止命令
- Linux命令-终止进程命令:killall
- linux kill命令参数及用法详解--linux终止进程命令
- Linux用ps命令查找进程PID再用kill命令终止进程的方法
- Linux 下用ps查找进程并用kill终止命令详解
- Linux杀死进程命令kill,pkill,killall,xkill
- linux kill命令参数及用法详解(linux终止进程命令)
- Linux 下用ps查找进程并用kill终止命令