linux 的信号机制
信号是Linux中非常重要的部分。
信号机制是进程间相互传递消息的一种方法,全称为软中断信号。信号可以看作进程控制的一部分。
基本概念
signal用来通知进程发生了异步事件,进程之间可以互相通过系统调用kill发送软中断信号。但是注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。
信号的处理方法:忽略、捕捉和默认动作
忽略信号,大多数信号可以使用这个方式来处理,但是有两种信号不能被忽略(分别是 SIGKILL和SIGSTOP)。因为他们向内核和超级用户提供了进程终止和停止的可靠方法,如果忽略了,那么这个进程就变成了没人能管理的的进程,显然是内核设计者不希望看到的场景。
捕捉信号,需要告诉内核,用户希望如何处理某一种信号,说白了就是写一个信号处理函数,然后将这个函数告诉内核。当该信号产生时,由内核来调用用户自定义的函数,以此来实现某种信号的处理。
系统默认动作,对于每个信号来说,系统都对应由默认的处理动作,当发生了该信号,系统会自动执行。不过,对系统来说,大部分的处理方式都比较粗暴,就是直接杀死该进程。
linux支持的信号列表:
用命令kill -l可以查看linux下的所有信号:
SIGHUP:1号信号,Hangup detected on controlling terminal or death of controlling process(在控制终端上挂起信号,或让进程结束)
SIGINT:2号信号,Interrupt from keyboard(键盘输入中断,ctrl + c )
SIGQUIT:3号信号,Quit from keyboard(键盘输入退出,ctrl+ | )
SIGABRT:6号信号,Abort signal from abort(3)(非正常终止,double free)
SIGKILL:9号信号,Kill signal(杀死进程信号,linux规定进程不可以忽略这个信号)文章来源:https://www.toymoban.com/news/detail-441777.html
综上所述,kill -9中,9代表的就是9号信号,带有强制执行的意思,它告诉进程:“无论你现在在做什么,立刻停止”。
所以当你需要强制杀死进程时,一般使用 kill -9 进程id 的格式。文章来源地址https://www.toymoban.com/news/detail-441777.html
到了这里,关于linux杀死进程(kill -9的使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!