由于某种原因,我的一些工作被操作系统杀死了。我需要调查为什么会发生这种情况。我运行的作业在自己的日志中没有显示任何错误消息,这可能表明操作系统杀死了它们。其他人无法访问服务器。我知道 OOM 杀手,还有其他进程杀手吗?我在哪里可以找到这些事情的日志?
答案1
oom 是目前唯一能自动杀死的东西。
消息
和/var/日志/消息应该显示 oom 杀死。
如果该进程可以处理该信号,它至少可以记录该终止信号。
通常,内存占用者会被杀死。如果内存只是被分配但实际上并不需要,也许更多的交换空间可以帮助您。
否则:获取更多内存。
答案2
我想到的是:
- 获取
SIGSEGV
或SIGBUS
用于无效内存访问 SIGILL
对于无效指令SIGFPE
当进行无效的算术运算(例如除以 0)时SIGXCPU
或者SIGXFSZ
如果过程超出某些限制SIGHUP
对于断开的终端和其他一些情况SIGPIPE
当尝试写入关闭的管道或套接字时