乐趣区

关于linux:Linux之killall命令

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

Centos 装置 killall 命令

> yum install -y psmisc

Ubuntu 装置 killall 命令

> apt-get install -y psmisc

命令格局

killall [参数] [过程名]

命令性能

用来完结同名的的所有过程

命令参数

  • -Z 只杀死领有 scontext 的过程
  • -e 要求匹配过程名称
  • -I 疏忽小写
  • -g 杀死过程组而不是过程
  • -i 交互模式,杀死过程前先询问用户
  • -l 列出所有的已知信号名称
  • -q 不输入正告信息
  • -s 发送指定的信号
  • -v 报告信号是否胜利发送
  • -w 期待过程死亡
  • –help 显示帮忙信息
  • –version 显示版本显示

杀死所有同名过程

> killall java

向指定过程发送信号

  • 后盾运行程序:vi &
  • 杀死 vi 过程:killall -TERM vi或者killall -KILL vi
> vi &
[1] 18729
> killall -TERM vi

[1]+  Stopped                 vi
> ps -ef | grep vi
root     18729  9713  0 22:26 pts/1    00:00:00 vi
root     18799  9713  0 22:26 pts/1    00:00:00 grep --color=auto vi
> killall -KILL vi
[1]+  Killed                  vi
> ps -ef | grep vi
root     18827  9713  0 22:26 pts/1    00:00:00 grep --color=auto vi
  • TERM信号将终止所有不能捕捉该信号的过程
  • KILL信号将强制杀死过程

把所有的登录后的 shell 给杀掉

> w
> killall -9 bash

运行命令:killall -9 bash 后,所有 bash 都会被卡掉了,所以以后所有连贯失落了。须要从新连贯并登录。

通过含糊匹配杀死所有过程

服务器运行了 rumenz1,rumenz2,rumenz3 过程

> killall -9 rumenz*

强制杀死 rumenz1,rumenz2,rumenz3 过程

终止某个用户所运行的过程

> killall -u deploy

咱们只想杀死运行工夫超过 6h 的过程

那么能够应用 -o 选项,其中 o 代表older

> killall -o 6h

杀死进行工夫小于 5h 的过程

> killall -y 5h

-y 选项,其中 y 代表younger

疏忽大小写完结过程

killall 命令是大小写敏感的,所以咱们如果写错大小写,将无奈正确杀死过程

> killall -I rumenz

敞开命令执行回显

默认状况下,killall 会通知你命令执行状况,然而,咱们如果不关怀它的执行后果,只想让它静默执行, 只需加上 -q 选项即可,其中 q 示意quite

列出所有反对的信号

> 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

交互式操作

如果你在杀死多个过程时不太释怀,放心把不该杀死的过程给杀死了,那么你能够应用 -i 选项

> killall -i rumenz

期待直到某个过程被终止

当一个信号被发送至某个过程,如果你想确定该过程曾经被杀死了才返回执行后果,能够应用 -w 选项,其中 w 代表wait

> killall -w rumenz

原文链接:https://rumenz.com/rumenbiji/…
微信公众号: 入门小站

退出移动版