Warning when available RAM approaches zero












6















This is a follow-up to Memory limiting solutions for greedy applications that can crash OS?: ulimit and cgroups are not user friendly, and besides, wouldn't work with applications that spawn separate processes, such as Chrome/Chromium for each new (group of) tabs.



The simple and effective solution, used by Windows 7 actually, is to warn the user that the OS is running low on memory. This simple warning pop-up has prevented me from having any low-memory-caused system freeze in Windows, while I kept running into them on Ubuntu distros that I was testing live (where the RAM-mounted disk would eat up 2GB alone).



So, is there some way to automatically warn the user that the available RAM is nearing zero, without the user having to keep an eye on some memory monitoring gadget? Surely Conky could be configured to do that?










share|improve this question




















  • 1





    Four years later, looks like periodically checking free -m is the way to go.

    – Dan Dascalescu
    Oct 7 '16 at 6:29
















6















This is a follow-up to Memory limiting solutions for greedy applications that can crash OS?: ulimit and cgroups are not user friendly, and besides, wouldn't work with applications that spawn separate processes, such as Chrome/Chromium for each new (group of) tabs.



The simple and effective solution, used by Windows 7 actually, is to warn the user that the OS is running low on memory. This simple warning pop-up has prevented me from having any low-memory-caused system freeze in Windows, while I kept running into them on Ubuntu distros that I was testing live (where the RAM-mounted disk would eat up 2GB alone).



So, is there some way to automatically warn the user that the available RAM is nearing zero, without the user having to keep an eye on some memory monitoring gadget? Surely Conky could be configured to do that?










share|improve this question




















  • 1





    Four years later, looks like periodically checking free -m is the way to go.

    – Dan Dascalescu
    Oct 7 '16 at 6:29














6












6








6


4






This is a follow-up to Memory limiting solutions for greedy applications that can crash OS?: ulimit and cgroups are not user friendly, and besides, wouldn't work with applications that spawn separate processes, such as Chrome/Chromium for each new (group of) tabs.



The simple and effective solution, used by Windows 7 actually, is to warn the user that the OS is running low on memory. This simple warning pop-up has prevented me from having any low-memory-caused system freeze in Windows, while I kept running into them on Ubuntu distros that I was testing live (where the RAM-mounted disk would eat up 2GB alone).



So, is there some way to automatically warn the user that the available RAM is nearing zero, without the user having to keep an eye on some memory monitoring gadget? Surely Conky could be configured to do that?










share|improve this question
















This is a follow-up to Memory limiting solutions for greedy applications that can crash OS?: ulimit and cgroups are not user friendly, and besides, wouldn't work with applications that spawn separate processes, such as Chrome/Chromium for each new (group of) tabs.



The simple and effective solution, used by Windows 7 actually, is to warn the user that the OS is running low on memory. This simple warning pop-up has prevented me from having any low-memory-caused system freeze in Windows, while I kept running into them on Ubuntu distros that I was testing live (where the RAM-mounted disk would eat up 2GB alone).



So, is there some way to automatically warn the user that the available RAM is nearing zero, without the user having to keep an eye on some memory monitoring gadget? Surely Conky could be configured to do that?







ram memory-usage






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 13 '17 at 12:24









Community

1




1










asked Dec 30 '12 at 7:25









Dan DascalescuDan Dascalescu

1,12521637




1,12521637








  • 1





    Four years later, looks like periodically checking free -m is the way to go.

    – Dan Dascalescu
    Oct 7 '16 at 6:29














  • 1





    Four years later, looks like periodically checking free -m is the way to go.

    – Dan Dascalescu
    Oct 7 '16 at 6:29








1




1





Four years later, looks like periodically checking free -m is the way to go.

– Dan Dascalescu
Oct 7 '16 at 6:29





Four years later, looks like periodically checking free -m is the way to go.

– Dan Dascalescu
Oct 7 '16 at 6:29










2 Answers
2






active

oldest

votes


















3














Check these scripts:
Need application/script alerting when system memory is running out



#!/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
<?php
$alert_percent=($argc>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();
?>





share|improve this answer





















  • 1





    The script works with small adaptations (I just used available=$(free -m | grep Mem | awk '{print $7}')). To make notify-send work with cron, refer to anmolsinghjaggi.wordpress.com/2016/05/11/…

    – morsch
    Aug 15 '16 at 21:50











  • If the language is not English, free will output localized text and parsing fails. Then add LANG=en_US.UTF-8 at the beginnning of the bash script.

    – Freddi Schiller
    May 19 '17 at 10:22





















1














Another script that I wrote for this purpose:



#!/bin/bash
# Copyright 2019, Mikko Rantalainen
# License: MIT X License

# Minimum available memory until warning, default to 10% of total RAM (MiB)
THRESHOLD=$(grep "MemTotal:" /proc/meminfo | awk '{ printf "%d", 0.1*$2/1024}')
INTERVAL=60s

echo "Emitting a warning if less than $THRESHOLD MiB of RAM is available..."

while true; do
meminfo=$(cat /proc/meminfo)
free=$(echo "$meminfo" | grep "MemFree:" | awk '{ printf "%d", $2/1024}')
available=$(echo "$meminfo" | grep "MemAvailable:" | awk '{ printf "%d", $2/1024}')
inactive=$(echo "$meminfo" | grep "Inactive:" | awk '{ printf "%d", $2/1024}')
reclaimable=$(echo "$meminfo" | grep "SReclaimable:" | awk '{ printf "%d", $2/1024}')
usable=$(echo "$free + $inactive / 2 + $reclaimable / 2" | bc)
if test -z "$available"; then
message="Current kernel does not support MemAvailable in /proc/meminfo, aborting"
notify-send "Error while monitoring low memory" "$message"
echo "$message" 1>&2
exit 1
fi

message="Available: $available MiB
Free: $free MiB
Maybe usable: $usable MiB"

if [ "$available" -lt "$THRESHOLD" ]
then
notify-send -u critical "Low memory warning" "$message"
echo "Low memory warning:"
echo "$message"
fi

#echo "DEBUG: $message"
sleep $INTERVAL
done





share|improve this answer


























  • Why o why does notify-send ignore the timeout parameter :-/ And why is there no documentation about what the categories and stock icons are? Also, newlines are ignored and the message gets truncated. -u critical solves that.

    – Dan Dascalescu
    Feb 13 at 8:36













  • Technically notify-send does not ignore the timeout. It's the process that takes the notication as input and displays it above the desktop that decides to ignore the timeout. See also: unix.stackexchange.com/q/251243/20336

    – Mikko Rantalainen
    Feb 13 at 14:11











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f234292%2fwarning-when-available-ram-approaches-zero%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









3














Check these scripts:
Need application/script alerting when system memory is running out



#!/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
<?php
$alert_percent=($argc>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();
?>





share|improve this answer





















  • 1





    The script works with small adaptations (I just used available=$(free -m | grep Mem | awk '{print $7}')). To make notify-send work with cron, refer to anmolsinghjaggi.wordpress.com/2016/05/11/…

    – morsch
    Aug 15 '16 at 21:50











  • If the language is not English, free will output localized text and parsing fails. Then add LANG=en_US.UTF-8 at the beginnning of the bash script.

    – Freddi Schiller
    May 19 '17 at 10:22


















3














Check these scripts:
Need application/script alerting when system memory is running out



#!/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
<?php
$alert_percent=($argc>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();
?>





share|improve this answer





















  • 1





    The script works with small adaptations (I just used available=$(free -m | grep Mem | awk '{print $7}')). To make notify-send work with cron, refer to anmolsinghjaggi.wordpress.com/2016/05/11/…

    – morsch
    Aug 15 '16 at 21:50











  • If the language is not English, free will output localized text and parsing fails. Then add LANG=en_US.UTF-8 at the beginnning of the bash script.

    – Freddi Schiller
    May 19 '17 at 10:22
















3












3








3







Check these scripts:
Need application/script alerting when system memory is running out



#!/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
<?php
$alert_percent=($argc>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();
?>





share|improve this answer















Check these scripts:
Need application/script alerting when system memory is running out



#!/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
<?php
$alert_percent=($argc>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();
?>






share|improve this answer














share|improve this answer



share|improve this answer








edited Apr 13 '17 at 12:23









Community

1




1










answered Sep 17 '13 at 19:11









StandardSpecificationStandardSpecification

1713




1713








  • 1





    The script works with small adaptations (I just used available=$(free -m | grep Mem | awk '{print $7}')). To make notify-send work with cron, refer to anmolsinghjaggi.wordpress.com/2016/05/11/…

    – morsch
    Aug 15 '16 at 21:50











  • If the language is not English, free will output localized text and parsing fails. Then add LANG=en_US.UTF-8 at the beginnning of the bash script.

    – Freddi Schiller
    May 19 '17 at 10:22
















  • 1





    The script works with small adaptations (I just used available=$(free -m | grep Mem | awk '{print $7}')). To make notify-send work with cron, refer to anmolsinghjaggi.wordpress.com/2016/05/11/…

    – morsch
    Aug 15 '16 at 21:50











  • If the language is not English, free will output localized text and parsing fails. Then add LANG=en_US.UTF-8 at the beginnning of the bash script.

    – Freddi Schiller
    May 19 '17 at 10:22










1




1





The script works with small adaptations (I just used available=$(free -m | grep Mem | awk '{print $7}')). To make notify-send work with cron, refer to anmolsinghjaggi.wordpress.com/2016/05/11/…

– morsch
Aug 15 '16 at 21:50





The script works with small adaptations (I just used available=$(free -m | grep Mem | awk '{print $7}')). To make notify-send work with cron, refer to anmolsinghjaggi.wordpress.com/2016/05/11/…

– morsch
Aug 15 '16 at 21:50













If the language is not English, free will output localized text and parsing fails. Then add LANG=en_US.UTF-8 at the beginnning of the bash script.

– Freddi Schiller
May 19 '17 at 10:22







If the language is not English, free will output localized text and parsing fails. Then add LANG=en_US.UTF-8 at the beginnning of the bash script.

– Freddi Schiller
May 19 '17 at 10:22















1














Another script that I wrote for this purpose:



#!/bin/bash
# Copyright 2019, Mikko Rantalainen
# License: MIT X License

# Minimum available memory until warning, default to 10% of total RAM (MiB)
THRESHOLD=$(grep "MemTotal:" /proc/meminfo | awk '{ printf "%d", 0.1*$2/1024}')
INTERVAL=60s

echo "Emitting a warning if less than $THRESHOLD MiB of RAM is available..."

while true; do
meminfo=$(cat /proc/meminfo)
free=$(echo "$meminfo" | grep "MemFree:" | awk '{ printf "%d", $2/1024}')
available=$(echo "$meminfo" | grep "MemAvailable:" | awk '{ printf "%d", $2/1024}')
inactive=$(echo "$meminfo" | grep "Inactive:" | awk '{ printf "%d", $2/1024}')
reclaimable=$(echo "$meminfo" | grep "SReclaimable:" | awk '{ printf "%d", $2/1024}')
usable=$(echo "$free + $inactive / 2 + $reclaimable / 2" | bc)
if test -z "$available"; then
message="Current kernel does not support MemAvailable in /proc/meminfo, aborting"
notify-send "Error while monitoring low memory" "$message"
echo "$message" 1>&2
exit 1
fi

message="Available: $available MiB
Free: $free MiB
Maybe usable: $usable MiB"

if [ "$available" -lt "$THRESHOLD" ]
then
notify-send -u critical "Low memory warning" "$message"
echo "Low memory warning:"
echo "$message"
fi

#echo "DEBUG: $message"
sleep $INTERVAL
done





share|improve this answer


























  • Why o why does notify-send ignore the timeout parameter :-/ And why is there no documentation about what the categories and stock icons are? Also, newlines are ignored and the message gets truncated. -u critical solves that.

    – Dan Dascalescu
    Feb 13 at 8:36













  • Technically notify-send does not ignore the timeout. It's the process that takes the notication as input and displays it above the desktop that decides to ignore the timeout. See also: unix.stackexchange.com/q/251243/20336

    – Mikko Rantalainen
    Feb 13 at 14:11
















1














Another script that I wrote for this purpose:



#!/bin/bash
# Copyright 2019, Mikko Rantalainen
# License: MIT X License

# Minimum available memory until warning, default to 10% of total RAM (MiB)
THRESHOLD=$(grep "MemTotal:" /proc/meminfo | awk '{ printf "%d", 0.1*$2/1024}')
INTERVAL=60s

echo "Emitting a warning if less than $THRESHOLD MiB of RAM is available..."

while true; do
meminfo=$(cat /proc/meminfo)
free=$(echo "$meminfo" | grep "MemFree:" | awk '{ printf "%d", $2/1024}')
available=$(echo "$meminfo" | grep "MemAvailable:" | awk '{ printf "%d", $2/1024}')
inactive=$(echo "$meminfo" | grep "Inactive:" | awk '{ printf "%d", $2/1024}')
reclaimable=$(echo "$meminfo" | grep "SReclaimable:" | awk '{ printf "%d", $2/1024}')
usable=$(echo "$free + $inactive / 2 + $reclaimable / 2" | bc)
if test -z "$available"; then
message="Current kernel does not support MemAvailable in /proc/meminfo, aborting"
notify-send "Error while monitoring low memory" "$message"
echo "$message" 1>&2
exit 1
fi

message="Available: $available MiB
Free: $free MiB
Maybe usable: $usable MiB"

if [ "$available" -lt "$THRESHOLD" ]
then
notify-send -u critical "Low memory warning" "$message"
echo "Low memory warning:"
echo "$message"
fi

#echo "DEBUG: $message"
sleep $INTERVAL
done





share|improve this answer


























  • Why o why does notify-send ignore the timeout parameter :-/ And why is there no documentation about what the categories and stock icons are? Also, newlines are ignored and the message gets truncated. -u critical solves that.

    – Dan Dascalescu
    Feb 13 at 8:36













  • Technically notify-send does not ignore the timeout. It's the process that takes the notication as input and displays it above the desktop that decides to ignore the timeout. See also: unix.stackexchange.com/q/251243/20336

    – Mikko Rantalainen
    Feb 13 at 14:11














1












1








1







Another script that I wrote for this purpose:



#!/bin/bash
# Copyright 2019, Mikko Rantalainen
# License: MIT X License

# Minimum available memory until warning, default to 10% of total RAM (MiB)
THRESHOLD=$(grep "MemTotal:" /proc/meminfo | awk '{ printf "%d", 0.1*$2/1024}')
INTERVAL=60s

echo "Emitting a warning if less than $THRESHOLD MiB of RAM is available..."

while true; do
meminfo=$(cat /proc/meminfo)
free=$(echo "$meminfo" | grep "MemFree:" | awk '{ printf "%d", $2/1024}')
available=$(echo "$meminfo" | grep "MemAvailable:" | awk '{ printf "%d", $2/1024}')
inactive=$(echo "$meminfo" | grep "Inactive:" | awk '{ printf "%d", $2/1024}')
reclaimable=$(echo "$meminfo" | grep "SReclaimable:" | awk '{ printf "%d", $2/1024}')
usable=$(echo "$free + $inactive / 2 + $reclaimable / 2" | bc)
if test -z "$available"; then
message="Current kernel does not support MemAvailable in /proc/meminfo, aborting"
notify-send "Error while monitoring low memory" "$message"
echo "$message" 1>&2
exit 1
fi

message="Available: $available MiB
Free: $free MiB
Maybe usable: $usable MiB"

if [ "$available" -lt "$THRESHOLD" ]
then
notify-send -u critical "Low memory warning" "$message"
echo "Low memory warning:"
echo "$message"
fi

#echo "DEBUG: $message"
sleep $INTERVAL
done





share|improve this answer















Another script that I wrote for this purpose:



#!/bin/bash
# Copyright 2019, Mikko Rantalainen
# License: MIT X License

# Minimum available memory until warning, default to 10% of total RAM (MiB)
THRESHOLD=$(grep "MemTotal:" /proc/meminfo | awk '{ printf "%d", 0.1*$2/1024}')
INTERVAL=60s

echo "Emitting a warning if less than $THRESHOLD MiB of RAM is available..."

while true; do
meminfo=$(cat /proc/meminfo)
free=$(echo "$meminfo" | grep "MemFree:" | awk '{ printf "%d", $2/1024}')
available=$(echo "$meminfo" | grep "MemAvailable:" | awk '{ printf "%d", $2/1024}')
inactive=$(echo "$meminfo" | grep "Inactive:" | awk '{ printf "%d", $2/1024}')
reclaimable=$(echo "$meminfo" | grep "SReclaimable:" | awk '{ printf "%d", $2/1024}')
usable=$(echo "$free + $inactive / 2 + $reclaimable / 2" | bc)
if test -z "$available"; then
message="Current kernel does not support MemAvailable in /proc/meminfo, aborting"
notify-send "Error while monitoring low memory" "$message"
echo "$message" 1>&2
exit 1
fi

message="Available: $available MiB
Free: $free MiB
Maybe usable: $usable MiB"

if [ "$available" -lt "$THRESHOLD" ]
then
notify-send -u critical "Low memory warning" "$message"
echo "Low memory warning:"
echo "$message"
fi

#echo "DEBUG: $message"
sleep $INTERVAL
done






share|improve this answer














share|improve this answer



share|improve this answer








edited Feb 13 at 8:59









David Foerster

28.3k1365111




28.3k1365111










answered Jan 29 at 7:35









Mikko RantalainenMikko Rantalainen

592515




592515













  • Why o why does notify-send ignore the timeout parameter :-/ And why is there no documentation about what the categories and stock icons are? Also, newlines are ignored and the message gets truncated. -u critical solves that.

    – Dan Dascalescu
    Feb 13 at 8:36













  • Technically notify-send does not ignore the timeout. It's the process that takes the notication as input and displays it above the desktop that decides to ignore the timeout. See also: unix.stackexchange.com/q/251243/20336

    – Mikko Rantalainen
    Feb 13 at 14:11



















  • Why o why does notify-send ignore the timeout parameter :-/ And why is there no documentation about what the categories and stock icons are? Also, newlines are ignored and the message gets truncated. -u critical solves that.

    – Dan Dascalescu
    Feb 13 at 8:36













  • Technically notify-send does not ignore the timeout. It's the process that takes the notication as input and displays it above the desktop that decides to ignore the timeout. See also: unix.stackexchange.com/q/251243/20336

    – Mikko Rantalainen
    Feb 13 at 14:11

















Why o why does notify-send ignore the timeout parameter :-/ And why is there no documentation about what the categories and stock icons are? Also, newlines are ignored and the message gets truncated. -u critical solves that.

– Dan Dascalescu
Feb 13 at 8:36







Why o why does notify-send ignore the timeout parameter :-/ And why is there no documentation about what the categories and stock icons are? Also, newlines are ignored and the message gets truncated. -u critical solves that.

– Dan Dascalescu
Feb 13 at 8:36















Technically notify-send does not ignore the timeout. It's the process that takes the notication as input and displays it above the desktop that decides to ignore the timeout. See also: unix.stackexchange.com/q/251243/20336

– Mikko Rantalainen
Feb 13 at 14:11





Technically notify-send does not ignore the timeout. It's the process that takes the notication as input and displays it above the desktop that decides to ignore the timeout. See also: unix.stackexchange.com/q/251243/20336

– Mikko Rantalainen
Feb 13 at 14:11


















draft saved

draft discarded




















































Thanks for contributing an answer to Ask Ubuntu!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f234292%2fwarning-when-available-ram-approaches-zero%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to make a Squid Proxy server?

第一次世界大戦

Touch on Surface Book