linux进程终止命令,【Unix/Linux】【命令】【进程】终止进程 —— kill,killall命令...

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:列出所有信号名称

5f98cd39ca1814ba94a482a9d7c936a0.png

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 ~]#

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值