凌晨4点了,您的工作精神一定要上报党中央!

服务器端

在 Linux 中 kill、kill -9、kill -3命令是什么意思有什么区别

2020年05月22日 11:14:43 · 本文共 1,842 字阅读时间约 6分钟 · 34,123 次浏览
在 Linux 中 kill、kill -9、kill -3命令是什么意思有什么区别

很多同学在日常使用 Linux 中会经常使用 kill 命令来杀死进程,有的直接使用 kill,有的使用 kill -9,有的使用 kill -3,他们是什么意思呢,有什么区别呢,今天我们就了解一下 Kill 命令和 Linux 中的信号。

Kill命令

kill命令的格式是 kill -Signal pid,其中 pid 就是进程的编号,signal是发送给进程的信号,默认参数下,kill 发送 SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自行停止运行并退出。

查看Kill命令的Signal信号列表可以使用命令:kill -l 来查看:

kill -l 命令

Linux Signal 信号

Linux支持POSIX标准信号和实时信号。下面给出Linux Signal的简表:

信号取值默认动作含义(发出信号的原因)
SIGHUP1Term终端的挂断或进程死亡
SIGINT2Term来自键盘的中断信号
SIGQUIT3Core来自键盘的离开信号
SIGILL4Core非法指令
SIGABRT6Core来自abort的异常信号
SIGFPE8Core浮点例外
SIGKILL9Term杀死
SIGSEGV11Core段非法错误(内存引用无效)
SIGPIPE13Term管道损坏:向一个没有读进程的管道写数据
SIGALRM14Term来自alarm的计时器到时信号
SIGTERM15Term终止
SIGUSR130,10,16Term用户自定义信号1
SIGUSR231,12,17Term用户自定义信号2
SIGCHLD20,17,18Ign子进程停止或终止
SIGCONT19,18,25Cont如果停止,继续执行
SIGSTOP17,19,23Stop非来自终端的停止信号
SIGTSTP18,20,24Stop来自终端的停止信号
SIGTTIN21,21,26Stop后台进程读终端
SIGTTOU22,22,27Stop后台进程写终端
SIGBUS10,7,10Core总线错误(内存访问错误)
SIGPOLLTermPollable事件发生(Sys V),与SIGIO同义
SIGPROF27,27,29Term统计分布图用计时器到时
SIGSYS12,-,12Core非法系统调用(SVr4)
SIGTRAP5Core跟踪/断点自陷
SIGURG16,23,21Ignsocket紧急信号(4.2BSD)
SIGVTALRM26,26,28Term虚拟计时器到时(4.2BSD)
SIGXCPU24,24,30Core超过CPU时限(4.2BSD)
SIGXFSZ25,25,31Core超过文件长度限制(4.2BSD)
SIGIOT6CoreIOT自陷,与SIGABRT同义
SIGEMT7,-,7Term
SIGSTKFLT-,16,-Term协处理器堆栈错误(不使用)
SIGIO23,29,22Term描述符上可以进行I/O操作
SIGCLD-,-,18Ign与SIGCHLD同义
SIGPWR29,30,19Term电力故障(System V)
SIGINFO29,-,-与SIGPWR同义
SIGLOST-,-,-Term文件锁丢失
SIGWINCH28,28,20Ign窗口大小改变(4.3BSD, Sun)
SIGUNUSED-,31,-Term未使用信号(will be SIGSYS)

一些信号的取值是硬件结构相关的(一般alpha和sparc架构用第一个值,i386、ppc和sh架构用中间值,mips架构用第三个值, - 表示相应架构的取值未知)。

SIGKILL和SIGSTOP信号不能被挂钩、阻塞或忽略。

在Linux 2.2(包括)内核之前,SIGSYS、SIGXCPU、SIGXFSZ和SIGBUS (SPARC和MIPS架构除外)的默认动作是终止进程,但没有core dump。Linux 2.4遵循POSIX.1-2001要求,这些信号的默认动作改为:终止进程同时做core dump。

进程可以通过使用sigaction和signal系统调用来改变信号的默认处理方式(使用signal的可移植性差)。进程可以选择下列3种信号处理方式中的一种:

  1. 执行默认操作;
  2. 忽略该信号;
  3. 捕获该信号,但是通过信号句柄来调用自定义的处理函数。

信号可能被阻塞。进程中的每个线程拥有独立的信号掩码,用来表示本线程的信号被阻塞。线程通过pthread_sigmask来设置它的信号掩码。单线程程序可以用sigprocmask来操作信号掩码。在多线程程序中,所有线程处理一个指定信号的默认行为都是一样的。


kill、kill -9、kill -3的区别

经过上面的学习,现在就知道他们的区别了吧。

kill 会默认传15代表的信号为SIGTERM,这是告诉进程你需要被关闭,请自行停止运行并退出,进程可以清理缓存自行结束,也可以拒绝结束。

kill -9代表的信号是SIGKILL,表示进程被终止,需要立即退出,强制杀死该进程,这个信号不能被捕获也不能被忽略。

kill -3可以打印进程各个线程的堆栈信息,kill -3 pid 后文件的保存路径为:/proc/${pid}/cwd,文件名为:antBuilderOutput.log

总结

如果是让进程自己执行退出离场程序就使用 kill 命令,这样进程可以自己执行一些清理动作然后退出。如果进程卡死,你需要记录当时的事故现场,那么应该用 kill -3 来记录事故现场的信息然后退出。如果你什么也不需要,就是要杀死一个进程那么就是用 kill -9 命令,很暴力的杀死它。

分享:
商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.renfei.net/posts/1003370
评论与留言

以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。

微信搜一搜:任霏博客

玻璃钢生产厂家商场环境美陈项目海南玻璃钢雕塑厂价格春节商场吊饰美陈自己晚上在家里做玻璃钢雕塑商场美陈滑雪雕塑商场美陈休息区石家庄抽象玻璃钢雕塑价位上海超市商场美陈销售企业安徽玻璃钢雕塑定制工厂河南节庆商场美陈费用商场美陈ip展福建玻璃钢仿真雕塑甘肃玻璃钢卡通雕塑小鸟报价天津玻璃钢卡通雕塑定制商场春季橱窗美陈图片小学校彩色玻璃钢雕塑亳州公园玻璃钢雕塑东阳玻璃钢雕塑加工厂德州锻铜校园玻璃钢雕塑湖州户内玻璃钢雕塑联系方式福建商场主题创意商业美陈多少钱五一商场美陈换新公众号河北大型商场创意商业美陈经验螃蟹玻璃钢卡通雕塑设计德宏公园玻璃钢雕塑定制曲阳定制玻璃钢雕塑仪征玻璃钢卡通雕塑麻城玻璃钢座椅雕塑宁夏玻璃钢公园雕塑玻璃钢公仔雕塑工厂香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化