五个你可能不了解的killall选项


Linux的命令行提供很多命令来杀死进程。比如,你可以向“kill”命传递一个PID来杀死进程;“pkill”命令使用一个正则表达式作为输入,所以和该模式匹配的进程都被杀死。

但是还有一个命令叫“killall”,默认情况下,它精确地匹配参数名,然后杀死匹配进程。在这篇文章中,我们将讨论有关这个命令的实际应用。

--------------------------------------分割线 --------------------------------------

相关阅读:

Linux命令及Linux终端的20个趣事

用Linux命令行修图——缩放、编辑、转换格式

自学Linux命令的四种方法

Linux命令最简单的使用方法

Linux命令行模式如何设置键盘快捷键

11个很少有人知道但很有用的Linux命令  

--------------------------------------分割线 --------------------------------------

Linux 的 killall 命令

killall命令可以用来给一个特定的进程发送一个信号。这个信号默认情况下是SIGTERM,但也可以由killall命令使用参数来指定其它信号。

现在让我们通过一些实际的例子来看看这个命令的实际用法。

1. 基本示例

在这个例子中,我们将使用killall来杀死特定进程。假如,有两个开头字符相同的进程:

  1. $ ps -aef | grep test
  2. himanshu 39692811014:14 pts/000:00:00./test
  3. himanshu 39702811014:14 pts/000:00:00./test_again

如何杀死“test_again”进程呢?

  1. $ killall test_again
  2. [2]+Terminated./test_again

如你所见,killall命令终止了“test_again”进程。你可以通过ps命令来确认这个事实:

  1. $ ps -aef | grep test
  2. himanshu 39692811014:14 pts/000:00:00./test

你可以观察到“test_again”没有被显示出来,因为它已经被杀死了。

2. 使用 -I 选项忽略大小写

默认情况下,killall命令是大小写敏感的。例如:

  1. $ ps -aef | grep test
  2. himanshu 41773161014:54 pts/300:00:00./test
  3. himanshu 41783161014:54 pts/300:00:00./test_again
  4. himanshu 41803161014:54 pts/300:00:00 grep --color=auto test
  5. $ killall TEST
  6. TEST:no process found

你可以看到,killall命令找不到叫做“TEST”的进程,但是“test”进程是确确实实的在运行的。

来让killall命令忽略大小写,可以使用-I选项(大写i)。例如:

  1. $ killall -I TEST
  2. [1]-Terminated./test

你可以观察到,现在你成功的终止了“test”进程。

3. 使用 -i 选项交互式的终止进程

killall命令可以用来终止多个进程。

  1. $ killall test test_again
  2. [2]-Terminated./test_again
  3. [3]+Terminated./test

但是,如果你想要killall交互式地来终止进程,你可以使用-i选项。

这里是例子:

  1. $ killall -i test test_again
  2. Kill test(4201)?(y/N) y
  3. Kill test_again(4202)?(y/N) y
  4. [1]-Terminated./test
  5. [2]+Terminated./test_again

你可以看到,用这种方式,在同时终止多个进程时,用户可以控制是否终止某一个进程。

更多详情见请继续阅读下一页的精彩内容:

  • 1
  • 2
  • 下一页

相关内容