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

news2025/8/4 1:24:40

目录

前言

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服务,流程引擎,状态机等等足够的时间去收尾,会引起不必要的麻烦 所以使用一定要谨慎!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/34678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android App开发音量调节中实现拖动条和滑动条和音频管理器AudioManager讲解及实战(超详细 附源码和演示视频)

需要源码请点赞关注收藏后评论区留下QQ~~~ 一、拖动条和滑动条 拖动条SeekBar继承自进度条ProgressBar,它与进度条的不同之处在于,进度条只能在代码中修改进度值,不能由用户改变进度值,拖动条不仅可以在代码中修改进度值&#xf…

ONE 2.0应用场景解读 | 如何通过时序拓扑直观还原故障传导链路?

近年来,随着数字化转型的不断推进,电子商务发展迅速,推动人们的购物行为随之发生转变,在线购物已成为人们的主要购物方式之一。相关数据表明,超过九成的中国网民使用过在线购物平台。 面对庞大的在线用户流量&#xf…

KMP算法——通俗易懂讲好KMP算法:实例图解分析+详细代码注解 --》你的所有疑惑在本文都能得到解答

1.kmp算法基本介绍 KMP 是一个解决模式串在文本串是否出现过,如果出现过,最早出现的位置的经典算法。Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP 算法”,常用于在一个文本串 S 内查找一个模式串 P 的出现位置,这…

使用koa框架部署项目

将打包好的代码打包上线,并在nodejs中代理跨域 前端工程师完成开发流程,按照常规的做法,此时,运维会将我们的代码部署到阿里云的ngix服务上,对于我们而言,我们可以将其部署到本机的nodejs环境中 企业代码部…

AI产业沙龙【语音之家】—京东在AI语音方向的技术探索与实践

由CCF语音对话与听觉专委会 、中国人工智能产业发展联盟(AIIA)评估组、京东科技、语音之家、希尔贝壳共同主办的【语音之家】AI产业沙龙—京东在AI语音方向的技术探索与实践,将于2022年11月29日19:30-21:30线上直播。 沙龙简介 如今人机对话…

【构建ML驱动的应用程序】第 10 章 :为模型构建安全措施

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

MYSQL进阶(3)

SQL语句的优化: 1)Insert语句的优化:我们如果说向数据库中插入数据,可以从下面几个方面来进行优化: 1.1)批量插入数据,values后面加上多个括号 1.2)手动控制事务,关闭自动提交,避免大量用到事务 1.3)按照主键顺序插入 2)大批量插入…

unity和C#的多线程 Thread的IsBackground属性,详解

Thread的IsBackground = true;//主程序结束后,线程随之结束 【日常要用到的】 Thread的IsBackground = false;//主程序结束后,线程不会随之结束 案例1、 using System; using System.Threading; namespace ConsoleApp1 { class Program { static void Main(st…

【数据结构】顺序表—纯C实现顺序表

顺序表文章目录定义特点缺陷静态顺序表动态顺序表接口实现顺序表初始化顺序表销毁顺序表增容头部的插入删除头插头删尾部的插入删除尾插尾删中间的插入删除中间插入中间删除顺序表查找顺序表打印定义 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xf…

sklearn.metrics模块重要API总结(持续更新)

目录前言各类指标分类指标(Classification metrics)sklearn.metrics.accuracy_scoresklearn.metrics.aucaverage_precision_score (AP)回归指标(Regression metrics)多标签排序指标(Multilabel ranking metrics&#x…

JUC05-AQS、ReentrantLock原理

一、AQS 全称是 AbstractQueuedSynchronizer,是同步器的相关框架,juc中很多锁的实现类依赖同步器(AQS的子类)完成核心操作 要点 内部维护state变量资源状态,state0表示当前无线程占用,state!0代表该锁正在被线程占用提供FIFO的等待队列&…

Mongodb实验二——分片集群搭建

目录 前言 题目一 1.创建副本集实例(Mongod) cfg0_0配置 cfg0_1配置 cfg0_2配置 ch0_0配置 ch0_1配置 ch0_2配置 ch1_0配置 ch1_1配置 ch1_2配置 2.初始化副本集 ch0conf.js配置 ch1conf.js配置 3.创建路由节点(分片管理服务器…

Live800:避开客服雷区,提升客服转化

小刘在某在线商城开了个小店铺,店铺做得不错,宝贝销量稳定,小日子过得有滋有味。 最近一段时间,流量持续下滑,销量跟着走低,可愁死了。 "流量有波动很正常,但是一直降一直降,肯…

《恋上数据结构与算法》第1季:算法概述

数据结构与算法的学习笔记目录:《恋上数据结构与算法》的学习笔记 目录索引算法概述1. 算法和数据结构1.1 什么是算法1.2 什么是数据结构2. 时间复杂度2.1 如何判断一个算法的好坏呢?2.2 基本操作执行次数2.3 大O表示法3. 空间复杂度3.1 概念定义4. 算法…

MCE | BCL6 小分子也能发挥类 PROTAC 的功能

图示摘要:来自作者 Jonas Koeppel (Ph. D., Department of Medical Oncology, Dana-Farber Cancer Institute) 的 Twitter杂合双功能降解技术 (PROTAC,靶蛋白配体-Linker-E3 连接酶配体组成的“三体”聚合物) 已被用于多种疾病相关靶点的降解剂开发&…

老年患者植入LVAD的挑战:胃肠道出血

EF值降低的心力衰竭随着年龄的增长越来越常见。据研究报道,75岁以上人群的患病率是普通人群的4倍,目前是老年人死亡和住院的最常见原因之一。治疗方案主要包括心脏移植(HT)和长期左心室辅助装置(LVAD)植入,这两种方法已被临床研究证明可降低患…

Flutter高仿微信-第34篇-单聊-小视频

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 详情请参考 Flutter高仿微信-第29篇-单聊 , 这里只是提取小视频的部…

Android App开发即时通信中通过SocketIO在客户端与服务端间传输文本和图片的讲解及实战(超详细 附源码)

需要源码和服务端代码请点赞关注收藏后评论区留下QQ~~~ 一、通过SocketIO传输文本消息 虽然HTTP协议能够满足多数常见的接口交互,但是他属于短连接,每次调用完就自动断开连接,并且HTTP协议区分了服务端和客户端,双方的通信过程是…

机器学习知识经验分享之三:基于卷积神经网络的经典目标检测算法

文章目录前言一、一阶段目标检测算法1.YOLO系列算法2.SSD检测算法3. RetinaNet检测算法二、两阶段目标检测算法1.Faster R-CNN检测算法2.Mask R-CNN检测算法3.Cascade R-CNN检测算法总结前言 本系列文章将对机器学习知识进行分享总结。便于大家从理论层面了解人工智能基础原理…

软件被人后台篡改了收款码属于入侵吗?

最近很多做平台的小伙伴,碰到了同样的问题,就是软件程序后台被恶意篡改收款二维码 这个问题出现在平台主身上无疑是雪上加霜,第一时间找到了小蚁君,分析了一下当时的情况,先安装了小蚁的入侵检测系统,显示…