| 
                         运行结果如下: 
- [alvin@VM_0_16_centos test]$ sudo killall -u harry  
 - [alvin@VM_0_16_centos test]$ ps aux | grep harry  
 - alvin    14040  0.0  0.0 112648   964 pts/0    R+   14:58   0:00 grep --color=auto harry 
 
  
但是,这个选项要慎用,因为它会把该用户所有进程,包括终端进程,全部杀死,将导致该用户直接退出。所以,如果不想挨揍的话不要轻意尝试这个选项。 
3、终于时间的方式终止进程 
假如我们现在运行了很多程序,我们只想杀死运行时间超过 5h 的进程,那么可以使用 -o 选项,其中 o 代表 older 如下: 
- killall -o 5h 
 
  
同样地,如果你想杀死进行时间小于 4h 的进程,那么可以使用 -y 选项,其中 y 代表 younger ,如下: 
- killall -y 4h 
 
  
这两个选项同样非常粗暴,也会把终端退出,所以先不演示了。 
4、忽略大小写 
默认情况下,killall 命令是大小写敏感的,所以我们如果写错大小写,将无法正确杀死进程。 
- [alvin@VM_0_16_centos test]$ killall HELLO1  
 - TEST1: no process found 
 
  
如果我们想忽略大小写,可以加上 -I (大写字母 i )选项。 
- [alvin@VM_0_16_centos test]$ killall -I HELLO1  
 - [1]   Terminated              ./hello1 
 
  
5、关闭命令执行回显 
默认情况下,killall 会告诉你命令执行情况,但是,我们如果不关心它的执行结果,只想让它静默执行,该怎么办?只需加上 -q 选项即可,其中 q 表示 quite , 如下: 
- [alvin@VM_0_16_centos test]$ killall HELLO2  
 - HELLO2: no process found  
 - [alvin@VM_0_16_centos test]$ killall -q HELLO2  
 - [alvin@VM_0_16_centos test]$ 
 
  
6、列出所有支持的信号 
如前文所述,默认情况下,killall 命令将发送 SIGTERM 信号,那么,安可以发送其它信号吗?当然是可以的。可以使用 -l 选项查看 killall 所支持的所有信号: 
- [alvin@VM_0_16_centos test]$ 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 
 
  
你可以使用 -s 选项(后面跟一个信号名)来向一个进程发送特殊信号。 
7、交互式操作 
如果你在杀死多个进程时不太放心,担心把不该杀死的进程给杀死了,那么你可以使用 -i 选项,这样就可以自由决定哪些进程应该被杀死,哪些进程应该被保留。 
- [alvin@VM_0_16_centos test]$ killall -i hello*  
 - Kill hello2(13825) ? (y/N) y  
 - Kill hello3(13831) ? (y/N) N  
 - hello: no process found  
 - hello1: no process found  
 - hello3: no process found  
 - hello.c: no process found  
 - [2]-  Terminated              ./hello2 
 
  
8、等待直到某个进程被终止                         (编辑:南京站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |