kill linux kill指令1—15
总结Linux中用于终结进程的kill和pikill及killall命令用法
kill
kill命令:发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。若仍无法终止该程序可用“-KILL”参数,其发送的信号为SIGKILL(9),将强制结束进程,使用ps命令或者jobs命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程
-l信号变化哦啊,若不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a当处理当前进程时,不限制命令名和进程号的对应关系
-p指定kill命令只打印相关进程的进程号,而不发送任何信号
-s指定发送信号
-u指定用户
例:
代码如下:
[root@redhat~]# kill 1908#杀死进程
[root@redhat~]# kill-KILL 1908#强制杀死进程
[root@redhat~]# kill-9 6985#彻底杀死进程
[root@redhat~]# kill-u tank#杀死指定用户的所有进程
pkill
pkill命令:是ps命令和kill命令的结合,用来杀死指定进程
-f显示完整程序
-l显示源代码
-n显示新程序
-o显示旧程序
-v与条件不符合的程序
-x与条件符合的程序
-p进程号列出父进程为用户指定进程的进程信息
-t终端指定终端下的所有程序
-u用户指定用户的程序
例:
代码如下:
[root@redhat~]# pkill-t tty1#杀死终端1下的所有进程
[root@Centos~]# pkill-kill-t pts/2#踢用户
[root@redhat~]# pkill-9 6985#彻底杀死进程
[root@redhat~]# pkill-u tank#杀死指定用户的所有进程
[root@redhat~]# pkill-vu root#杀死不属于root用户的所有进程
killall
killall-以名字方式来杀死进程 [[ ]]
killall [-egiqvw ] [-signal ] name...
killall-l
killall-V [[ ]]
DESCRIPTION(描述)
killall发送一条信号给所有运行任意指定命令的进程.如果没有指定信号名,则发送 SIGTERM.
信号可以以名字(如-HUP)或者数字(如-1)的方式指定.信号 0(检查进程是否存在)只能以数字方式指定.
如果命令名包括斜杠(/),那么执行该特定文件的进程将被杀掉,这与进程名无关.
如果对于所列命令无进程可杀,那么 killall会返回非零值.如果对于每条命令至少杀死了一个进程, killall返回 0.
killall进程决不会杀死自己(但是可以杀死其它 killall进程). [[ ]]
OPTIONS(选项)
-e
对于很长的名字,要求准确匹配.如果一个命令名长于 15个字符,则可能不能用整个名字(溢出了).在这种情况下, killall会杀死所有匹配名字前 15个字符的所有进程.有了-e选项,这样的记录将忽略.如果同时指定了-v选项, killall会针对每个忽略的记录打印一条消息.
-g
杀死属于该进程组的进程. kill信号给每个组只发送一次,即使同一进程组中包含多个进程.
-i
交互方式,在杀死进程之前征求确认信息.
-l
列出所有已知的信号名.
-q
如果没有进程杀死,不会提出抱怨.
-v
报告信号是否成功发送.
-V
显示版本信息.
-w
等待所有杀的进程死去. killall会每秒检查一次是否任何被杀的进程仍然存在,仅当都死光后才返回.注意:如果信号被忽略或没有起作用,或者进程停留在僵尸状态, killall可能会永久等待.
例:
代码如下:
[root@redhat~]# killall sudo
会话结束,结束 shell......已被杀死。
linux kill命令
linux kill命令使用场景:当需要中断一个前台进程的时候,通常是使用< Ctrl+c>组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。
kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号,那么默认值为TERM信号。TERM信号将终止所有不能捕获该信号的进程。至于那些可以捕获该信号的进程可能就需要使用kill(9)信号了,该信号是不能被捕捉的。
kill命令的语法:
kill [-s信号|-p ] [-a ]进程号
kill-l [信号]
说明:-s指定需要送出的信号。既可以是信号名也可以对应数字。
-p指定kill命令只是显示进程的pid,并不真正送出结束信号。
-l显示信号名称列表,这也可以在/usr/include/linux/signal.h文件中找到。
kill命令的使用:
[举例]在执行一条find指令时由于时间过长,决定终止该进程。
首先应该使用ps命令来查看该进程对应的PID,键入ps,显示如下:
PID TTY TIME COMMAND
285 1 00:00:00-bash
287 3 00:00:00-bash
289 5 00:00:00/sbin/mingetty tty5
290 6 00:00:00/sbin/mingetty tty6
312 3 00:00:00 telnet bbs3
341 4 00:00:00/sbin/mingetty tty4
345 1 00:00:00 find/-name foxy.jpg
348 1 00:00:00 ps
可以看到该进程对应的PID是345,现在使用kill命令来终止该进程。键入:
# kill 345
再用ps命令查看,就可以看到,find进程已经被杀掉了。
linux杀死进程命令killlinux杀死进程
linuxkill杀不掉进程?
linux进程kill不掉
一是进程已经成为僵死进程,当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了;
二是进程正处在内核状态中,Linux进程运行时分内核和用户两种状态,当进程进入内核状态后,会屏蔽所有信号,包括SIGKIL,所以这个时候kill-9也变得无效了。
如何kill杀掉linux系统中的僵尸defunct进程?
找到该defunct僵尸进程的父进程,将该进程的父进程杀掉,则此defunct进程将自动消失
linux如何查进程,杀进程,重启进程?
查找进程ps-ef|grep-vgrep|grep"XXXXX"杀进程kill-9`ps-ef|grep-vgrep|grepXXXXX|awk'{print$2}'`重起serviceXXXXrestart
如何杀掉Linux中的僵尸进程?
1、使用top命令就可以查看到僵尸进程。
2、查看具体进程pid#ps-A-ostat,ppid,pid,cmd|grep-e"^"说明:不是查不出僵尸进程,是因为我重启了系统,没有僵尸进程。
3、杀死僵尸进程#kill-9pid号