总用kill -9杀进程,知道9代表什么吗?

Linux信号机制是进程间通信的一种方式,用于通知进程发生了异步事件。信号包括忽略、捕捉和默认动作三种处理方式。不可忽略的SIGKILL和SIGSTOP信号提供对进程的强制控制。信号如SIGHUP、SIGINT、SIGQUIT等,各有其特定含义和作用。例如,kill-9中的9代表SIGKILL信号,强制进程停止。
摘要由CSDN通过智能技术生成

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规定进程不可以忽略这个信号)

综上所述,kill -9中,9代表的就是9号信号,带有强制执行的意思,它告诉进程:“无论你现在在做什么,立刻停止”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值