首页 > 编程笔记

Linux killall命令:终止进程

继《Linux kill命令》一节后,本节讲解 killall 命令的功能和用法。

killall 是用于终止进程的另一个命令,用来结束同名的所有进程。它与 kill 命令不同,killall 命令不是根据 PID 来终止单个进程,而是通过程序的进程名称来杀死一类进程。

killall 命令常与 ps、pstree 等命令配合使用。

killall 发送一条信号给所有运行任意指定命令的进程,如果没有指定信号名,则发送 SIGTERM。

killall 命令的基本格式如下:

[root@bogon ~]# killall [选项] [信号] 进程名称

killall 命令常用的选项及作用如表 1 所示。

表 1 killall命令常用的选项及作用
选 项 作 用
-I 在发送信号给指定名称的进程时忽略大小写
-i 交互模式,杀死进程前先询问用户
-e 要求匹配进程名称
-s 发送指定的信号
-v 报告信号是否发送成功
-w 等待所有被终止的进程停止工作。killall 命令会每秒检查一次,是否还有被杀的进程仍然运行,仅当进程全部 停止后才返回

【例 1】交互式终止 sshd 进程。
1) 使用 ps 和 grep 的组合命令查询 sshd 进程。在终端页面输入如下命令:

[root@bogon ~]# ps aux | grep "sshd" | grep -v "grep"
root       2223  0.0  0.0  66604  1152 ?        Ss   01:58   0:00 /usr/sbin/sshd

2) 使用 killall 命令、-i 选项,交互式的终止 sshd 进程。命令如下:

[root@bogon ~]# killall -i sshd
Kill sshd(2223) ? (y/N) y
[root@bogon ~]#

注意,这里需要输入 y/n 选择是否终止 sshd 服务。如果终止该服务,那么所有的 sshd 连接都将不能登录。

优秀文章