linux常用命令:killall 命令
killall命令用进程的名字来杀死进程。
1.命令格式:
killall [ -egiqvw ] [ -signal ] [进程名称]
格式:killall -<signame> <command-name> 格式:killall -<signum> <command-name> 发送指定的信号到名字为<command-name>的所有进程。指定的信号可以是名称<signame>,也可以是信号对应的数字<signum>。 下面是常用的信号: 第一列为<signame>,第二列为<signum>,第三列为信号的含义。 HUP 1 终端断线 INT 2 中断(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \) KILL 9 强制终止 TERM 15 终止 CONT 18 继续(与STOP相反, fg/bg命令) STOP 19 暂停(同 Ctrl + Z
2.命令功能:
用来结束同名的的所有进程
我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。
killall发送一条信号给所有运行任意指定命令的进程. 如果没有指定信号名, 则发送 SIGTERM。
3.命令参数:
1) -I 在发送信号给指定名称的进程时忽略大小写
2) -i 交互模式,杀死进程前先询问用户
3) -e 要求匹配进程名称(当进程名大于15个字符时有用)
4) -s 发送指定的信号
5) -v 报告信号是否发送成功
检查共享内存中的written,是否为0,若不是,表示共享内存中的数据还没有被完,则等待其他进程读取完成,并提示用户等待。terminateprocess()是异步执行的linux常用命令,在调用返回后并不能确定被终止进程是否已经真的退出,如果调用terminateprocess()的进程对此细节关心,可以通过waitforsingleobject()来等待进程的真正结束。terminateprocess()是异步执行的,在调用返回后并不能确定被终止进程是否已经真的退出,如果调用terminateprocess()的进程对此细节关心linux常用命令,可以通过waitforsingleobject()来等待进程的真正结束。
注意: 如果信号被忽略或没有起作用, 或者进程停留在僵尸状态, killall 可能会永久等待。
4.使用实例
1)[root@localhost xiong]# killall -9 bash
[root@localhost xiong]# ps -ef |grep bash root 826 1 0 6月26 ? 00:00:01 /bin/bash /usr/sbin/ksmtuned xiong 8914 8772 0 6月26 ? 00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic" xiong 71359 71351 0 07:10 pts/0 00:00:00 bash root 71399 71392 0 07:10 pts/0 00:00:00 bash root 71439 71399 0 07:10 pts/0 00:00:00 grep --color=auto bash [root@localhost xiong]# killall bash //并没有起到任何作用 [root@localhost xiong]# ps -ef |grep bash root 826 1 0 6月26 ? 00:00:01 /bin/bash /usr/sbin/ksmtuned xiong 8914 8772 0 6月26 ? 00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic" xiong 71359 71351 0 07:10 pts/0 00:00:00 bash root 71399 71392 0 07:10 pts/0 00:00:00 bash root 71450 71399 0 07:10 pts/0 00:00:00 grep --color=auto bash