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不能杀死啥样的进程?的主要内容,如果未能解决你的问题,请参考以下文章

Kill

Linux几种中断信号的区别:HUP,INT,KILL,TERM,TSTP

Linux中的kill与kill -9

Linux中的kill与kill -9

Linux进程调度的kill命令

MySQL密码忘了怎么办