彻底解决搜狗拼音因内存泄漏占用大量内存的简单方法
Tofloor
poster avatar
y***z@tom.com
deepin
2018-09-20 17:16
Author
本帖最后由 yjgsz 于 2018-9-20 16:20 编辑

先在百度上学习了一些LINUX脚本知识,再参照弄了个脚本,判断搜狗拼音的内存占用情况(不判断CPU占用),当超过指定值(我设定的是150mb,以资源监视器中看到的为基准),就强制关闭该进程,再重启搜狗拼音,以防止出现内存泄漏占用几个G,导致系统反映变慢甚至死机的情况.
脚本采用循环方式,每30秒检查一次(时间间隔可自行更改).只要添加到自启动就行了,不用加到系统服务.也可以保存为sh文件放在桌面上,每次开机后双击运行一下就OK了.自动在后台监控搜狗拼音的内存占用情况,一旦超标就杀死并重启进程.

#!/bin/bash

PROCESS="sogou-qimpanel"  #进程名
MAXMEM=153600    #最大内存阀值,单位KB,如判断物理内存,下面要用VmRSS 参数.

while true
do

ID=`ps -ef | grep "${PROCESS}" | grep -v "grep" | awk '{print $2}'`

if [ ! -n "$ID" ]; then
    # echo "$PROCESS not exist"
    exit 1

  else

   # MEM=`cat /proc/$ID/status | grep -e VmRSS | awk '{print $2}'`
   MEM=`cat /proc/$ID/status | grep -e RssAnon | awk '{print $2}'`

   if [ $MEM -gt $MAXMEM ]; then
    #超过了,kill或者restart进程
    kill $ID
    sleep 3

    /usr/bin/sogou-qimpanel start
   fi
fi
sleep 30

done






Reply Favorite View the author
All Replies
avatar
snyh1010
deepin
2018-09-20 17:31
#1
了解下  cgexec
kernel有直接提供这类功能的,不需要跑个daemon来检测
Reply View the author
avatar
jianguo922
deepin
2018-09-20 17:35
#2
应该把此方法给官方重新打包解决
Reply View the author
avatar
ih******op@vip.qq.com
deepin
2018-09-20 17:46
#3
这样会导致wine程序不能使用新启动的输入法,其实最简单的方法就是换ibus 我已经换了很久了 稳定多了 而且没有那些乱七八糟的输入法QT插件依赖
Reply View the author
avatar
y***z@tom.com
deepin
2018-09-20 18:21
#4
本帖最后由 yjgsz 于 2018-9-20 10:22 编辑

官方能否在开发的深度管家中增加一个限制应用内存占用的功能,可自行添加应用,设定允许占用内存的最大值,哪怕应用有bug.如内存泄漏,也不会突破设定值,乖乖的听话,那就OK了
Reply View the author
avatar
qq420100523
deepin
2018-09-20 18:39
#5
https://bbs.deepin.org/post/169086
这样会导致wine程序不能使用新启动的输入法,其实最简单的方法就是换ibus 我已经换了很久了 稳定多了 而且 ...

可否出个完美更换ibus输入法的教程
Reply View the author
avatar
ih******op@vip.qq.com
deepin
2018-09-20 19:15
#6
https://bbs.deepin.org/post/169086
可否出个完美更换ibus输入法的教程

ibus相关的包装下 然后im-config切换一下,用不了一杯茶的功夫

  1. ibus-libpinyin ibus-pinyin pinyin-database
Copy the Code
Reply View the author
avatar
Ethan
deepin
2018-09-20 20:02
#7
楼主是个人才
Reply View the author
avatar
zhaozhendong
deepin
2018-09-20 22:22
#8
https://bbs.deepin.org/post/169086
这样会导致wine程序不能使用新启动的输入法,其实最简单的方法就是换ibus 我已经换了很久了 稳定多了 而且 ...

deepin装了几次ibus了,都无法开机启动,
前段又弄了一次,结果又跟anaconda3冲突,,ibus是python2开发的,只好放弃 ibus.
Reply View the author
avatar
y***z@tom.com
deepin
2018-09-21 00:11
#9
本帖最后由 yjgsz 于 2018-9-20 16:13 编辑

我发现,如只用搜狗拼音的话,内存占用上涨比较慢.
但输入文字时,切换输入法较多,如一会儿用五笔,一会儿因不会打字又用搜狗,来回切换时会发现搜狗输入法内存占用会快速疯涨.
刚才顺便把脚本逻辑优化了一下,之前两IF是并列的,逻辑不对.
Reply View the author
avatar
pengfd
deepin
2018-09-21 04:01
#10
搜狗输入法内存占用一直很高,手机上我从来不用
Reply View the author
avatar
亚历山大一世
deepin
2018-09-21 06:26
#11
写毛脚本,定时任务 定时kill 一次
Reply View the author
avatar
不避风云
deepin
2018-09-21 06:45
#12
用 killall 和定时命令吧。这个kill 还要自己找id
Reply View the author
avatar
ih******op@vip.qq.com
deepin
2018-10-08 19:23
#13
https://bbs.deepin.org/post/169086
deepin装了几次ibus了,都无法开机启动,
前段又弄了一次,结果又跟anaconda3冲突,,ibus是python2开发的,只 ...

1.我好好的。用im-config启动 不要自己弄,如果sogo有干扰 就卸载掉他
2.python2和python3完全不冲突的两个东西
3.你自己装包是不能保证依赖正确的
Reply View the author
avatar
jian555gg
deepin
2018-10-09 19:43
#14
直接换输入法吧ibus-rime完美
Reply View the author
avatar
JesseyLawson
deepin
2018-10-22 01:22
#15
https://bbs.deepin.org/post/169086
这样会导致wine程序不能使用新启动的输入法,其实最简单的方法就是换ibus 我已经换了很久了 稳定多了 而且 ...

换了输入法后,系统版本更新会出故障吗?我之前有一次新版更新几次都未成功,后来下载iso文件重新安装的,不知道与当初换掉输入法有没有关系
Reply View the author
avatar
johnmy
deepin
2020-04-23 05:11
#16
15.11 Deepin
终端运行提示:

cat: /proc/4070: 是一个目录
cat: 4138/status: 没有那个文件或目录
/home/hmy/Desktop/sogou/sogou.sh: 第 20 行:[: -gt: 需要一元表达式

怎么办?
Reply View the author
avatar
昨夜的星辰
deepin
2020-04-23 05:27
#17
https://bbs.deepin.org/post/169086
我发现,如只用搜狗拼音的话,内存占用上涨比较慢.
但输入文字时,切换输入法较多,如一会儿用五笔,一会儿因不 ...

既然都用五笔,还用搜狗干啥,直接卸载掉
sudo apt install fcitx-table-wbpy    装个五笔拼音,全部解决
这个是一直在用的,很稳
Reply View the author
avatar
lflflf
deepin
2020-04-23 07:58
#18
ubuntu上面就不存在这个问题,而且听说是deepin联合搜狗开发的输入法版本,人家合作开发怎么就不感谢deepin呢
支持:Ubuntu、Ubuntukylin 1604、1804、1810、1904、1910
版本:2.3.1.0112 升级日志
日期:2019-10-17
合作开发: Ubuntu Kylin团队
Reply View the author