killall命令用进程的名字来杀死进程。

    (1)用法:

    用法:  killall [ -egiqvw ] [ -signal ] [进程名称]

格式:killall -<signame> <command-name>
格式:killall -<signum> <command-name>
发送指定的信号到名字为<command-name>的所有进程。指定的信号可以是名称<signame>,也可以是信号对应的数字<signum>。
下面是常用的信号:
第一列为<signame>,第二列为<signum>,第三列为信号的含义。
HUP 终端断线
INT 中断(同 Ctrl + C)
QUIT 退出(同 Ctrl + \)
KILL 强制终止
TERM 终止
CONT 继续(与STOP相反, fg/bg命令)
STOP 暂停(同 Ctrl + Z

    (2)功能:

    功能:  用来结束同名的的所有进程

我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。

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

    (3)选项参数:

1) -I         在发送信号给指定名称的进程时忽略大小写

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

3) -e          要求匹配进程名称(当进程名大于15个字符时有用http://os.51cto.com/art/201405/437678.htm)

4) -s         发送指定的信号

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

6) -w        等待所有杀的进程死去。killall 会每秒检查一次是否任何被杀的进程仍然存在, 仅当都死光后才返回.

               注意: 如果信号被忽略或没有起作用, 或者进程停留在僵尸状态, killall 可能会永久等待。

    (4)实例:

1)[root@localhost sunmeng]# killall -9 bash

[root@localhost sunmeng]# ps -ef |grep bash
root 6月26 ? :: /bin/bash /usr/sbin/ksmtuned
sunmeng 6月26 ? :: /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
sunmeng : pts/ :: bash
root : pts/ :: bash
root : pts/ :: grep --color=auto bash
[root@localhost sunmeng]# killall bash      //并没有起到任何作用
[root@localhost sunmeng]# ps -ef |grep bash
root 6月26 ? :: /bin/bash /usr/sbin/ksmtuned
sunmeng 6月26 ? :: /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
sunmeng : pts/ :: bash
root : pts/ :: bash
root : pts/ :: grep --color=auto bash

当使用killall -9 bash时将会退出root和用户的登录。

2)[root@localhost Documents]# killall -9 vi        杀死进程名为vi的所有进程

[root@localhost Documents]# vi text1.txt    

[]+  已停止               vi text1.txt
[root@localhost Documents]# vi text2.txt []+ 已停止 vi text2.txt
[root@localhost Documents]# ps -ef | grep "vi"
root 6月26 ? :: /usr/bin/abrt-watch-log -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG at list_del corruption list_add corruption do_IRQ: stack overflow: ear stack overflow (cur: eneral protection fault nable to handle kernel ouble fault: RTNL: assertion failed eek! page_mapcount(page) went negative! adness at NETDEV WATCHDOG ysctl table check failed : nobody cared IRQ handler type mismatch Machine Check Exception: Machine check events logged divide error: bounds: coprocessor segment overrun: invalid TSS: segment not present: invalid opcode: alignment check: stack segment: fpu exception: simd exception: iret exception: /var/log/messages -- /usr/bin/abrt-dump-oops -xtD
root 6月26 ? :: /usr/sbin/libvirtd
sunmeng 6月26 ? :: /usr/libexec/goa-identity-service
sunmeng 6月26 ? :: /usr/libexec/dconf-service
root : pts/ :: vi text1.txt
root : pts/ :: vi text2.txt
root : pts/ :: grep --color=auto vi
[root@localhost Documents]# ps -ef |grep "text"      //根据text能找着名字为vi的进程
root : pts/ :: vi text1.txt
root : pts/ :: vi text2.txt
root : pts/ :: grep --color=auto text
[root@localhost Documents]# killall text       //但并不能通过它来删除进程     
text: no process found
[root@localhost Documents]# killall vi        //还是不起效果
[root@localhost Documents]# ps -ef | grep "vi"
root 6月26 ? :: /usr/bin/abrt-watch-log -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG at list_del corruption list_add corruption do_IRQ: stack overflow: ear stack overflow (cur: eneral protection fault nable to handle kernel ouble fault: RTNL: assertion failed eek! page_mapcount(page) went negative! adness at NETDEV WATCHDOG ysctl table check failed : nobody cared IRQ handler type mismatch Machine Check Exception: Machine check events logged divide error: bounds: coprocessor segment overrun: invalid TSS: segment not present: invalid opcode: alignment check: stack segment: fpu exception: simd exception: iret exception: /var/log/messages -- /usr/bin/abrt-dump-oops -xtD
root 6月26 ? :: /usr/sbin/libvirtd
sunmeng 6月26 ? :: /usr/libexec/goa-identity-service
sunmeng 6月26 ? :: /usr/libexec/dconf-service
root : pts/ :: vi text1.txt
root : pts/ :: vi text2.txt
root : pts/ :: grep --color=auto vi
[root@localhost Documents]# killall - vi      //经过测试,只有加上-9才会起作用
[]- 已杀死 vi text1.txt
[]+ 已杀死 vi text2.txt

3)[root@localhost Documents]# killall -l      打印所有已知信号列表

[root@localhost Documents]# 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@localhost Documents]# kill -l
) SIGHUP   ) SIGINT   ) SIGQUIT ) SIGILL ) SIGTRAP
) SIGABRT   ) SIGBUS   ) SIGFPE ) SIGKILL ) SIGUSR1
) SIGSEGV ) SIGUSR2   ) SIGPIPE ) SIGALRM ) SIGTERM
) SIGSTKFLT ) SIGCHLD   ) SIGCONT ) SIGSTOP ) SIGTSTP
) SIGTTIN ) SIGTTOU ) SIGURG ) SIGXCPU ) SIGXFSZ
) SIGVTALRM ) SIGPROF ) SIGWINCH ) SIGIO ) SIGPWR
) SIGSYS ) SIGRTMIN ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX

4)[root@localhost Documents]# killall -s TERM vi      发送指定的信号给指定名称的进程

[root@localhost Documents]# killall -s TERM vi
[root@localhost Documents]# ps -ef | grep vi
root 6月26 ? :: /usr/bin/abrt-watch-log -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG at list_del corruption list_add corruption do_IRQ: stack overflow: ear stack overflow (cur: eneral protection fault nable to handle kernel ouble fault: RTNL: assertion failed eek! page_mapcount(page) went negative! adness at NETDEV WATCHDOG ysctl table check failed : nobody cared IRQ handler type mismatch Machine Check Exception: Machine check events logged divide error: bounds: coprocessor segment overrun: invalid TSS: segment not present: invalid opcode: alignment check: stack segment: fpu exception: simd exception: iret exception: /var/log/messages -- /usr/bin/abrt-dump-oops -xtD
root 6月26 ? :: /usr/sbin/libvirtd
sunmeng 6月26 ? :: /usr/libexec/goa-identity-service
sunmeng 6月26 ? :: /usr/libexec/dconf-service
root : pts/ :: vi text1.txt
root : pts/ :: vi text1.txt
root : pts/ :: vi text2.txt
root : pts/ :: grep --color=auto vi
[root@localhost Documents]# killall TERM vi
TERM: no process found
[root@localhost Documents]# killall -s KILL vi
[]- 已杀死 vi text1.txt
[]+ 已杀死 vi text2.txt
[]+ 已杀死 vi text1.txt

5)[root@localhost Documents]# killall -w -s 9 ping      发送信号给指定进程,等待它被杀死

[root@localhost Documents]# ps -ef | grep "ping"
root : pts/ :: ping 192.168.0.18
root : pts/ :: ping -b 192.168.0.18
root : pts/ :: grep --color=auto ping
[root@localhost Documents]# killall -w -s - ping
-: 未知的信号; killall -l 显示信号列表。
[root@localhost Documents]# killall -w -s ping
[]- 已杀死 ping 192.168.0.18
[]+ 已杀死 ping -b 192.168.0.18
[root@localhost Documents]# ps -ef | grep "ping"
root : pts/ :: grep --color=auto ping

6)[root@localhost Documents]# killall -help

[root@localhost Documents]# killall -help
Usage: killall [-Z 上下文] [-u 用户名] [ -eIgiqrvw ] [ -信号 ] 程序名...
killall -l, --list
killall -V, --version -e,--exact require exact match for very long names
-I,--ignore-case case insensitive process name match
-g,--process-group kill process group instead of process
-y,--younger-than kill processes younger than TIME
-o,--older-than kill processes older than TIME
-i,--interactive ask for confirmation before killing
-l,--list list all known signal names
-q,--quiet don't print complaints
-r,--regexp interpret NAME as an extended regular expression
-s,--signal SIGNAL send this signal instead of SIGTERM //
-u,--user USER kill only process(es) running as USER
-v,--verbose report if the signal was successfully sent
-V,--version display version information
-w,--wait wait for processes to die
-Z,--context 正则表达式 仅杀死含有指定上下文的进程
(必须在其他参数前使用)

每天一个Linux命令(61)killall命令的更多相关文章

  1. Linux 下使用 killall 命令终止进程的 8 大用法

    Linux 的命令行提供很多命令来杀死进程.比如,你可以向 kill 命传递一个PID来杀死进程:pkill 命令使用一个正则表达式作为输入,所以和该模式匹配的进程都被杀死. 但是还有一个命令叫 ki ...

  2. linux常用命令:killall 命令

    killall命令用进程的名字来杀死进程. 1.命令格式:    killall [ -egiqvw ] [ -signal ] [进程名称] 格式:killall -<signame> ...

  3. Linux kill/pkill/killall命令详解

    kill kill(terminate a process)命令用来终止指定的进程, 对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PI ...

  4. kill命令和killall命令

    kill命令用于终止指定的进程(terminate a process),是Unix/Linux下进程管理的常用命令.通常,我们在需要终止某个或某些进程时,先使用ps/pidof/pstree/top ...

  5. Linux-kill命令和killall命令(11)

    kill:指定将信号发送给某个进程,常用来杀掉进程,可以通过ps.top命令来查看进程 在默认情况下: 采用编号为的TERM信号.TERM信号将终止所有不能捕获该信号的进程. 对于那些可以捕获该信号的 ...

  6. 每天一个linux命令(43):killall命令

    Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name).我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在 ...

  7. 每天一个linux命令(35):killall命令

    Linux 系统中的killall命令用于杀死指定名字的进程(kill processes by name).我们可以使用kill命令杀死指定进程PID的进 程,如果要找到我们需要杀死的进程,我们还需 ...

  8. 【转】每天一个linux命令(43):killall命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/12/21/2827366.html Linux系统中的killall命令用于杀死指定名字的进程(kill ...

  9. 【转载】每天一个Linux命令

    目  录 每天一个linux命令(1)  : ls 命令 每天一个linux命令(2)  : cd 命令 每天一个linux命令(3)  : pwd 命令 每天一个linux命令(4)  : mkdi ...

随机推荐

  1. Yarn源码分析之如何确定作业运行方式Uber or Non-Uber?

    在MRAppMaster中,当MapReduce作业初始化时,它会通过作业状态机JobImpl中InitTransition的transition()方法,进行MapReduce作业初始化相关操作,而 ...

  2. Linux 文件管理(C语言库函数二--程序日志)

    文件删除和改名 int remove(const char *pathname); int rename(const char *oldpath,const char *newpath); remov ...

  3. c++标准库之thread

    class thread是对线程的抽象.以下分别介绍thread是如何表示线程的大部分特征的. 执行体 线程的执行体由一个可执行(callable)对象来表示.这个执行体可以在thread创建的时候指 ...

  4. 第一百七十五节,jQuery,工具函数

    jQuery,工具函数 学习要点: 1.字符串操作 2.数组和对象操作 3.测试操作 4.URL 操作 5.浏览器检测 6.其他操作 工具函数是指直接依附于 jQuery 对象,针对 jQuery 对 ...

  5. JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上。

    JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上. Java(由 Sun 发明)是更复杂的编程语言. ECMA-262 是 JavaScript 标准的官方名称. Jav ...

  6. 数值孔径NA、分辨率极限与衍射极限

    一.数值孔径  数值孔径(NA):是一个无量纲的数,用以衡量该系统能够收集的光的角度范围.越大,收集到的光越多,分辨率越高. 描述了透镜收光锥角的大小,决定着透镜收光能力和空间分辨率. 数值孔径(NA ...

  7. redis 集群出现的错误

    1 解决方法: 不用 Jedis jed =new jedis("192.168.56.101"); jed.set(key,value); 用 Set<HostAndPor ...

  8. Oracle SQL*Loader 数据导入工具

    SQL*Loader是一个向Orale大量倒数据的工具,可以从界定文件中导入数据如用 , 界定的,可以从定宽的文件导入数据,

  9. Android OpenCV集成摄像头图片动态识别车牌号

    最近两天开发一个使用OpenCV集成的一个识别车牌号的项目,困难重重,总结一下相关经验,以及开发注意事项: 一.开发环境: Android Studio 个人版本 3.1.4 NDK下载:14b CM ...

  10. centos7.0 安装docker

    yum  -y install docker docker中常用的命令 docker run -it --name  新名字 centos /bin/bash docker images 查看所有镜像 ...