系统启动提示oom的处理过程

作者:枫凡

问题背景

centos 系统主机启动后提示oom,重启后第一时间也是oom
系统启动提示oom的处理过程

排查过程

接到此工单之前,通用技术同学已经尝试将系统内部禁止了nginx,php-fpm,mysqld,/etc/rc.local 中的/usr/bin/zabbix_server 的开机自启动,但依然无效,升级过来
常见服务已经禁止,重启也无效,可以使用单用户模式尝试进入查看加载,确认下是否系统服务影响
第一次没有看到启动过程,但是启动后也是提示oom,可以说明并非客户安装的第三方服务导致,而是由于系统内部自身的服务可能被添加篡改导致了
再重启第二次观察单用户模式启动过程,看到如下加载内容
系统启动提示oom的处理过程

可以定位问题了,/etc/init.d/functions 中有异常的内容在循环耗尽内存
挂载修复盘查看该文件内容,可以明显看到有一句话木马,就是“罪魁祸首”
系统启动提示oom的处理过程

解决方案

将/etc/init.d/functions 中添加的一句话木马注释重启后恢复正常

扩展

一句话木马解析

:( ) ;:

执行该语句会导致系统内存耗尽,有名的“fork炸弹”
原理就是定义一个函数,并不断递归,不停地制造后台任务
系统启动提示oom的处理过程

写的容易理解一点就是如下

function() 
;
function
上一篇:nova boot添加volume_type参数支持


下一篇:记一次Linux系统内存占用较高得排查