系统启动提示oom的处理过程-阿里云开发者社区

开发者社区> 云服务技术课堂> 正文

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

简介: entos 系统主机启动后提示oom,重启后第一时间也是oom

作者:枫凡

问题背景

centos 系统主机启动后提示oom,重启后第一时间也是oom
image.png

排查过程

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

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

解决方案

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

扩展

一句话木马解析

:( ) ;:

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

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

function() 
;
function

版权声明:如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developerteam@list.alibaba-inc.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

云服务技术课堂,各类技术课程、最佳实践输出,来好好听课吧!

官方博客