系统什么时候发送SIGKILL信号
来源:互联网 发布:python中文输出 编辑:程序博客网 时间:2024/06/18 17:02
我的程序有时候会随机收到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
由于安全设置限制了进程的使用。
- 系统什么时候发送SIGKILL信号
- 系统什么时候发送SIGKILL信号
- 信号 解释 / SIGSTERM SIGKILL 区别
- 内核出的sigkill信号
- 内核发出的sigkill信号
- uinx 信号 SIGINT SIGTERM SIGKILL区别
- 十五、Linux系统编程-信号(二)信号分类、可靠信号与不可靠信号、信号发送 pause
- linux系统编程之信号(六):信号发送函数sigqueue和信号安装函数sigaction
- linux系统编程之信号(六):信号发送函数sigqueue和信号安装函数sigaction
- linux系统编程之信号(六):信号发送函数sigqueue和信号安装函数sigaction
- linux系统编程之信号(二):一些信号发送函数和不同精度的睡眠
- linux系统编程之信号(二):一些信号发送函数和不同精度的睡眠
- linux系统编程之信号(二):一些信号发送函数和不同精度的睡眠
- 十六、Linux系统编程-信号(三)其他信号发送函数、可重入及不可重入函数
- linux系统编程之信号(二):一些信号发送函数和不同精度的睡眠
- Linux中与进程终止相关的信号SIGTERM,SIGKILL,SIGINT
- Linux C实践(1):不可忽略或捕捉的信号—SIGSTOP和SIGKILL
- 什么时候需要进行信号完整性分析?
- 是男人就坚持50秒隐私策略
- 处理get请求时编码的拦截器
- ligerUI结合SSH分页
- Android入门系列二(环境搭建)
- C++中的操作符重载
- 系统什么时候发送SIGKILL信号
- C 指针作为参数与动态分配内存相关问题
- Android学习笔记--处理UI事件
- mySQL查询优化
- 堆和栈的区别
- Java访问控制符总结
- 因为spring整合hibernate 导致无法再jsp用domain中的collection session closed
- HTML页面加载和解析流程
- oracle存储过程大数据量insert