Команда для остановки программы после некоторого отключения оперативной памяти

Иногда я использую некоторые программы, которые используют слишком много ОЗУ, и из-за того, что ОЗУ полностью заполнено, моя система дает сбой.

Есть ли какая-нибудь команда, заставляющая Ubuntu автоматически останавливать выполнение определенного процесса после использования определенного количества ОЗУ?

0
задан 9 May 2020 в 19:40

1 ответ

Вы можете использовать bash 'while loop' для достижения этой цели. Вот простой сценарий, который я подключил, который завершится, если вам не хватит памяти:

#!/usr/bin/env bash
set -x
set -e

state=$(sed -E 's/^[[:space:]]*([[:digit:]]*).*/\1/' <<< $(egrep --color 'MemFree' /proc/meminfo | cut -d" " -f2-))
check="2000000"

while [ "$state" -gt "$check" ]
do
    echo "Lots of memory"

done

echo "Out of memory"
exit 1

Сценарий получает свою информацию из файла / proc / meminfo и проверяет наличие свободной памяти. Но, конечно, измените ваши потребности.

Информация:

  • set -x : используется для отладки скрипта.
  • set -e : останов скрипта при первой ошибке.
  • state = $ (sed -E 's / ^ [[: space:]] * ([[: digit:]] *). * / \ 1 /' <<< $ (egrep - color 'MemFree' / proc / meminfo | cut -d "" -f2 -)) : получить свободную память из файла / proc / meminfo и отформатировать ее для использования.
0
ответ дан 19 June 2020 в 21:41

Другие вопросы по тегам:

Похожие вопросы: