Выполнить скрипт, когда пики памяти?

У меня не так много памяти, и иногда, когда я играю в видеоигры, она заполняется, и мой компьютер начинает зависать, все, что я делаю, занимает больше 1 минуты, прежде чем это делается, включая движение мыши и щелчок мыши. 110]

Итак, я хочу иметь возможность убить какой-то процесс, который я использую, и я знаю, что могу убить (например, мой интернет-браузер) до того, как память заполнится, поэтому у меня осталось немного больше места. Знаете ли вы, как это сделать?

С технической точки зрения я хочу, чтобы, когда память почти заполнена, он запускал скрипт, который отправит SIGTERM (приказ закрыть) в мой интернет-браузер, так что мой ПК не зависает, и я могу сохранить все, что я делаю, и снова открыть свой браузер или забыть о своем браузере.

Спасибо за вашу помощь.

3
задан 12 October 2010 в 08:06

4 ответа

Хорошо, вот так:

#!/bin/bash
threshold=100          # Minimum amount of memory left when you should start killing, in MB
browser="firefox-bin"  # Change this to whatever you use, firefox is actually firefox-bin
while true; do
    available=$(free -m | head -2 | tail -1 | awk '{print $4}')
    if [ "$threshold" -ge "$available" ]; then
        killall -q $browser  # Will not complain if no processes were killed
    fi
    sleep 20
done

Поместите это в /home/USERNAME/bin, выполните chmod +x ~/bin/SCRIPTNAME, а затем добавьте его в свои программы автозапуска через System->Preferences->Startup Applications.

Затем скрипт будет запускаться при входе в систему автоматически. Вы можете запустить его вручную с помощью ~/bin/SCRIPTNAME &

0
ответ дан 12 October 2010 в 08:06

Убивать что-либо ради сохранения памяти - плохая идея, особенно автоматически . Убедитесь, что у вас достаточно подкачки и оперативной памяти - конечно, запуск чего-то, использующего 1 гигабайт памяти на машине объемом 512 МБ, все равно что попытаться выиграть Гран-при F1 за рулем Corolla.

Под этим я подразумеваю «не делай этого».

0
ответ дан 12 October 2010 в 08:06

Попробуйте установить для vm.swappiness значение 100 согласно приведенным здесь инструкциям (используйте 100 вместо 0) на машине с нехваткой памяти, которая может улучшить производительность. https://help.ubuntu.com/community/SwapFaq#What%20is%20swappiness%20and%20how%20do%20I%20change%20it ?

0
ответ дан 12 October 2010 в 08:06

Ядро делает это автоматически , когда у вас заканчивается память.

Однако, если вы включили своп, это займет лот измельчения.

0
ответ дан 12 October 2010 в 08:06

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

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