系统什么时候发送SIGKILL信号

when does the system send SIGKLILL

我的程序有时候会随机收到SIGKILL信号,gdb会提示:

Program terminated with signal SIGKILL, Killed.
The program no longer exists.
(gdb)
并且我找不到任何原因?什么时候系统会发送SIGKILL信号呢?我这里没有其他程序发送这个信号。。。

 

回答:
There are situations under which the kernel will send SIGKILL to a
process. Others have mentioned the Linux OOM killer; a more rarely
seen one is if you have a CPU-time resource hard limit set (such as
via the ulimit shell-builtin) then the kernel will send the process a
SIGKILL when the limit is reached.

在下列几种情况下,系统会发送SIGKILL信号:

1、OOM killer。out of memory 一般由于程序内存泄漏导致内存不足引起的。

2、CPU-time resource hard limit。用ulimit -t 查看系统对CPU使用时间有没有限制。如果超过限制,就会发送SIGKILL信号。

3、ptrace() (我也不太懂)
Another fairly 'standard' case is when the process tracing another
process using ptrace() dies without stopping the tracing; the traced
process is sent a SIGKILL then. Since the process in this case is
being actively traced with gdb, that would apparently not apply here,
but it does explain why killing gdb will kill a process that gdb is
attached to.

其他可能的情况:
-bad memory hardware (usually results in SIGSEGVs, but it looks like there are cases where SIGKILL will be generated)

内存硬件错误。通常会导致SIGSEGV,有时候也会发送SIGKILL。


- network or pseudo filesystem being ripped out from under the process

(不懂)


- hit the SysReq key

(不懂)


- various "secure computing" setups which restrict the operations a process can use
由于安全设置限制了进程的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值