kill 默认信号term与-9有啥区别,捕获是啥意思?trem不能杀死啥样的进程?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kill 默认信号term与-9有啥区别,捕获是啥意思?trem不能杀死啥样的进程?相关的知识,希望对你有一定的参考价值。
百科上的解释:kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号,那么默认值为TERM信号。TERM信号将终止所有不能捕获该信号的进程。至于那些可以捕获该信号的进程可能就需要使用kill(9)信号了,该信号是不能被捕捉的。
term信号终止信号,但是程序需捕捉到信号才可以,然后退出进程。人性化一点,就是自愿接受信号。至于kill -9,你不想收,我就强制搞定你。 参考技术A kill命令格式:kill -Signal pid
pid是进程号,可以用 ps 命令查出
signal是发送给进程的信号,TERM(或数字9)表示“无条件终止”
下面是一个例子
$ whoami
root
$ ps auxw | grep vi #查询有没有运行vi程序
fenggz 13118 0.0 0.0 4140 1044 pts/1 S+ 05:33 0:00 vi
root 13120 0.0 0.0 4836 640 pts/0 S+ 05:33 0:00 grep vi
#答案:有运行,进程号13118
$ kill -9 13118 #把vi杀掉(无条件终止)
$ ps auxw | grep vi
root 13122 0.0 0.0 4404 640 pts/0 S+ 05:33 0:00 grep vi
#没有vi了...
$
追问
能不能直接说出term和-9的最大区别
参考技术B 多数人可能会回答 kill -9 pid,这是一种在多数情况下正确的做法。不过本文打算阐述使用kill -9带来的一些问题,并给出另一种标准的kill方式。标准中断信号在Linux信号机制中,存在多种进程中断信号(Linux信号列表 )。Linux杂项
1. Kill进程
kill命令格式:
kill -Signal pid
pid是进程号,可以用 ps -aux | grep [name] 命令查出
默认参数下,kill 发送SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自行停止运行并退出。kill -9 发送SIGKILL信号给进程,告诉进程,你被终结了,请立刻退出。
TERM(或数字9)表示“无条件终止”; 因此 kill - 9 表示强制杀死该进程;与SIGTERM相比,这个信号不能被捕获或忽略,同时接收这个信号的进程在收到这个信号时不能执行任何清理。
2. Vim Tab空格
默认为8个空格,按ECS并输入:set tabstop=4 可改为4个空格
以上是关于kill 默认信号term与-9有啥区别,捕获是啥意思?trem不能杀死啥样的进程?的主要内容,如果未能解决你的问题,请参考以下文章