kill-9 用时一时爽,悔恨火葬场!!!

目录

前言

kill -9 和kill -15的区别

常见的信号值有:

信号值9和15的区别:

总结


前言

相信很多程序员对于Linux系统都不陌生,即使自己的日常开发机器不是Linux,那么线上服务器也大部分都是的,所以,掌握常用的Linux命令也是程序员必备的技能。但是,怕就怕很多人对于部分命令只是一知半解,使用不当就能导致线上故障。

linux当中的这种命令使用的时候呢可以指定一个信号,比如-9 -15,你也知道kill -9会有点问题,但是为啥呢?

kill -9 和kill -15的区别

kill命令可以向特定的进程发送指定的信号值。不同的信号值所代表的行为不一样。

常见的信号值有:

信号值9和15的区别:

信号值15可以在结束此进程之前,允许此进程做一些清理工作(clean-up)
信号值9会直接杀死目标进程,不给其机会做清理工作

[root@iZbp10j40viotftelmrcx2Z ~]# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
[root@iZbp10j40viotftelmrcx2Z ~]# 

总结(十分重要)

kill的命令默认是-15,系统会发送一个终止信号给对应的程序,当程序接收到信号之后呢,具体要如何处理?其实它是可以自己决定,比如像jvm,它可以执行一些清理动作,其实底层的是通过shutdown hook的实现的,开发者可以基于这个机制自定义一个钩子,在钩子中呢进行资源的关闭,链接的断开等等,这种shutdown hook的机制呢在spring tomcat dubbo等服务当中呢也有相应的实现。目的就是来实现优雅停机的,那我们说回到kill-15这种信号,这种信号给到应用程序之后有可能会停止,也可能会堵塞,甚至会忽略这个情况,主动权掌握在应用程序自己手里,所以通常kill一个程序的时候会发现是杀不掉的.

那这个时候呢很多人会选择kill - 9.没错,kill -9确实要更强,操作系统会强制kill进程,有很多操作系统会强制基本不给任何辩驳,矫正的机会,立刻马上就可以杀死,这个时候所有的shutdown hook机制都会失效,这个时候可能会带来不必要的麻烦,尤其是对于web应用,提供RPC服务的,执行定时任务,包括长事物的这个应用来说kill-9他没有给Spring容器 tomcat服务器 dubbo服务,流程引擎,状态机等等足够的时间去收尾,会引起不必要的麻烦 所以使用一定要谨慎!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kiritobryant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值