当内存使用超过特定限制时,如何自动终止进程?

bla*_*899 5 command-line skype

有时,当我运行 Skype 时,它​​实际上占用了大量内存,以至于
我无法关闭它,一切都像 CRAZY 一样滞后。但这只是有时
有一个命令可以跟踪Skype,当它占用大量内存时会杀死它。像这样的东西

track skype when memory exceeds XXXX killall skype
Run Code Online (Sandbox Code Playgroud)

Tum*_*oid 5

虽然主动设置限制可能有一点意义,但让我们回答 OP 的问题:-)

/etc/init/skype-killer.conf. skype如果不是skype,则替换为 Skype 的二进制名称,并将500000(如 500000 kB = 500 M)替换为您希望对 Skype 虚拟内存大小强制执行的 kB 限制以及30检查之间的秒数。

此作业将在启动时开始并继续运行检查 Skype 内存使用情况。将其复制到/etc/initwith 后sudo,请执行此操作sudo start skype-killer,或重新启动系统。如果您想修改内存使用情况,请编辑skype-killer.conf并执行sudo stop skype-killer; sudo start skype-killer.

start on startup
stop on shutdown

script
  while /bin/true; do
    if $(pidof skype); then
      test $(cat /proc/`pidof skype`/status | grep "VmSize:" | sed -re s,VmSize:\\s+,, | cut -d" " -f1) -gt 500000 && killall skype
    fi
    sleep 30
  done
end script
Run Code Online (Sandbox Code Playgroud)