解决系统内存不足
程序员文章站
2022-06-04 11:20:17
...
说明
安装应用过多,使用过程中会导致内存不足,杀掉系统进程,可以通过free -h命令判断当前剩余内存,杀掉部分进程来解决内存紧张问题。
脚本实现
#!/bin/sh
while true ;do
setprop test.mem 1
total=`free -m | sed -n '2p' | awk '{print $2}'`
used=`free -m | sed -n '2p' | awk '{print $3}'`
free=`free -m | sed -n '2p' | awk '{print $4}'`
shared=`free -m | sed -n '2p' | awk '{print $5}'`
buffers=`free -m | sed -n '2p' | awk '{print $6}'`
cacheused=`free -m | sed -n '3p' | awk '{print $3}'`
cachefree=`free -m | sed -n '3p' | awk '{print $4}'`
totalcache=`free -m | sed -n '3p' | awk '{print $3+$4}'`
ratecache=`free -m | sed -n '3p' | awk '{print $3/($3+$4)*100}'`
echo -e "total\tused\tfree\tshared\tbuffers\tcacheused\tcachefree\tratecache"
echo -e "$total\t$used\t$free\t$shared\t$buffers\t$cacheused\t\t$cachefree\t\t$ratecache"
rate=`echo ${ratecache%.*}`
echo -e "rate:$rate"
if [ $rate -ge 90 ];then
echo "Memory Warn"
kill -9 $(pidof com.android.car)
kill -9 $(pidof com.chinatsp.music)
kill -9 $(pidof com.chinatsp.music:wecarbase)
echo 3 >/proc/sys/vm/drop_caches
sleep 1m
elif [ $rate -ge 95 ];then
kill -9 $(pidof com.tencent.wecarnavi)
kill -9 $(pidof evs_app)
echo 3 >/proc/sys/vm/drop_caches
sleep 1m
else
echo 'It is OK'
fi
sleep 1
done
创建服务和启动服务
在init.rc中实现如下代码:
service mem /system/bin/mem.sh
user shell
class core
disabled
oneshot
group root shell
seclabel u:r:shell:s0
#启动服务
on property:sys.boot_completed=1
bootchart stop
start mem
上一篇: 教你写出健壮可靠的shell脚本!
下一篇: flex应用anychart
推荐阅读
-
nginx配置引发的403问题解决办法
-
abp(net core)+easyui+efcore实现仓储管理系统——菜单 (十六)
-
关于react-router/react-router-dom v4 history不能访问问题的解决
-
ThinkPHP控制器里javascript代码不能执行的解决方法
-
【原创】微信授权、获取用户openid-纯前端实现——jsonp跨域访问返回json数据会报错的纯前端解决办法
-
解决IIS8.5中ASP上传大文件出现 Request 对象 错误 ASP 0104 : 80004005 错误的方法
-
解决memcache中使用session_start启动慢_PHP教程
-
yii2 数据导出 excel导出以及导出数据时列超过26列时解决方法
-
laravel5.1 - PHP中使用Soap出现Function doesn't exist问题,如何解决?
-
机房收费系统系列七:完工篇