killall命令详解

  

基础命令学习目录首页html

 

原文连接:https://blog.csdn.net/tanga842428/article/details/52474250shell

Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。咱们能够使用kill命令杀死指定进程PID的进程,若是要找到咱们须要杀死的进程,咱们还须要在以前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。centos

1.命令格式:bash

killall[参数][进程名]post

2.命令功能:学习

用来结束同名的全部进程url

3.命令参数:centos7

-Z 只杀死拥有scontext的进程.net

-e 要求匹配进程名称htm

-I 忽略小写

-g 杀死进程组而不是进程

-i 交互模式,杀死进程前先询问用户

-l 列出全部的已知信号名称

-q 不输出警告信息

-s 发送指定的信号

-v 报告信号是否成功发送

-w 等待进程死亡

--help 显示帮助信息

--version 显示版本显示

 

4.使用实例:

实例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:向进程发送指定信号

命令:

后台运行程序:vi &

杀死 vi进程:killall -TERM vi  或者  killall -KILL 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 ~]#

说明:

 

实例3:把全部的登陆后的shell给杀掉

命令:

killall -9 bash

输出:

[root@localhost ~]# w

 18:01:03 up 41 days, 18:53,  3 users,  load average: 0.00, 0.00, 0.00USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0    10.2.0.68        14:58    9:52   0.10s  0.10s -bash

root     pts/1    10.2.0.68        17:51    0.00s  0.02s  0.00s w

root     pts/2    10.2.0.68        17:51    9:24   0.01s  0.01s -bash

[root@localhost ~]# killall -9 bash

[root@localhost ~]# w

 18:01:48 up 41 days, 18:54,  1 user,  load average: 0.07, 0.02, 0.00USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0    10.2.0.68        18:01    0.00s  0.01s  0.00s w

[root@localhost ~]#

 

说明:

运行命令:killall -9 bash 后,全部bash都会被卡掉了,因此当前全部链接丢失了。须要从新链接并登陆。

 

centos7精简安装后,使用中发现没有killall命令。

能够经过如下命令解决:

yum install psmisc -y

Psmisc软件包包含三个帮助管理/proc目录的程序。

 

格式:killall -l

列出支持的信号。

 

示例一

[root@jfht ~]# killall -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED
[root@jfht ~]#

 

示例二

[root@jfht ~]# killall tail
[root@jfht ~]# killall tail
tail: no process killed
[root@jfht ~]#

 

示例三

这个例子展现怎样把全部的登陆后的shell给杀掉,由于有些bash实际上已经没有终端相链接了。

[root@jfht ~]# w
 21:56:35 up 452 days,  5:16,  3 users,  load average: 0.05, 0.06, 0.01
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/1    220.112.87.62    21:53    0.00s  0.02s  0.00s w
root     pts/9    220.112.87.62    21:53    2:44   0.02s  0.02s -bash
root     pts/10   220.112.87.62    21:53    3:13   0.01s  0.01s -bash
[root@jfht ~]# killall -9 bash
此bash也被·卡掉了,因此链接丢失了。如今从新链接并登陆。

Last login: Mon Apr  4 21:53:23 2011 from 220.112.87.62 [root@jfht ~]# w  21:56:52 up 452 days,  5:16,  1 user,  load average: 0.28, 0.10, 0.02 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT root     pts/1    220.112.87.62    21:56    0.00s  0.01s  0.00s w [root@jfht ~]#

相关文章
相关标签/搜索