当可用RAM接近零时发出警告

这是针对可能导致操作系统崩溃的贪婪应用程序的内存限制解决方案的后续行动? :ulimit和cgroups不是用户友好的,此外,不适用于生成单独进程的应用程序,例如每个新((组)选项卡的Chrome / Chromium。

实际上,Windows 7使用的简单有效的解决方案是警告用户操作系统内存不足。 这个简单的警告弹出窗口阻止我在Windows中进行任何低内存导致的系统冻结,而我在Ubuntu发行版中不断遇到我正在测试的内容(RAM安装的磁盘会单独占用2GB)。

那么,是否有某种方法可以自动警告用户可用内存接近零,用户不必关注某些内存监控小工具? 当然Conky可以配置这样做吗?

检查以下脚本: 系统内存不足时需要应用程序/脚本警报

 #!/bin/bash #Minimum available memory limit, MB THRESHOLD=400 #Check time interval, sec INTERVAL=30 while : do free=$(free -m|awk '/^Mem:/{print $4}') buffers=$(free -m|awk '/^Mem:/{print $6}') cached=$(free -m|awk '/^Mem:/{print $7}') available=$(free -m | awk '/^-\/+/{print $4}') message="Free $free""MB"", buffers $buffers""MB"", cached $cached""MB"", available $available""MB""" if [ $available -lt $THRESHOLD ] then notify-send "Memory is running out!" "$message" fi echo $message sleep $INTERVAL done 

PHP:

 #!/usr/bin/php 1)?(int)$argv[1]:90; //$interval=($argc>2):(int)$argv[2]:25; //while(true) //{ exec("free",$free); $free=implode(' ',$free); preg_match_all("/(?<=\s)\d+/",$free,$match); list($total_mem,$used_mem,$free_mem,$shared_mem,$buffered_mem,$cached_mem)=$match[0]; $used_mem-=($buffered_mem+$cached_mem); $percent_used=(int)(($used_mem*100)/$total_mem); if($percent_used>$alert_percent) exec("notify-send 'Low Memory: $percent_used% used'"); //sleep($interval); //} exit(); ?>