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

Я не уверен, что все работает так, как вы описываете. I.e, нет «программного» тактового процесса / приложения, которое либо использует часы BIOS, либо ntp-сервер и может быть «сломан» в Ubuntu, но работает в Windows. В любом случае информация, которую вы видите на экране, поступает из часов BIOS.

Если сервер NTP включен, данные, поступающие от него, используются для настройки BIOS / аппаратных часов, и, когда аппаратные часы считается «неправильным», демон NTP настраивает время постепенно с небольшими приращениями, а не сразу устанавливает его. Это делается для того, чтобы избежать внезапных «прыжков» в системное время, что может вызвать всевозможные проблемы (например, событие, которое происходит после какого-то другого события, но в более раннее время).

Что прекрасно объясняет поведение, видение - как только «правильные» данные поступают с сервера NTP, демон начинает постепенно корректировать ваше системное время.

Я думаю, что ваш часовой пояс / летнее время может быть установлен неверно. Другая возможность может заключаться в том, что Ubuntu ожидает, что часы BIOS будут установлены на время UTC, в то время как Windows устанавливает часы в вашем локальном часовом поясе, что приводит к тому, что Ubuntu думает, что ваши системные часы опозданы / раннее по вашему GMT смещению

документ может быть полезным: https://help.ubuntu.com/community/UbuntuTime#Multiple%20Boot%20Systems%20Time%20Conflicts

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

29 ответов

Здесь:

#!/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 &

3
ответ дан 26 May 2018 в 01:09
  • 1
    Вы забыли иметь бесконечный цикл, чтобы поддерживать процесс, и это if [ "$threshold" -ge "$available" ];, а не if [ "$available" -ge "$threshold" ];. Я скорректировал это и добавил проверку, чтобы проверить, работает ли программа if ps ax | grep -v grep | grep $browser > /dev/null; then ..., и она работает отлично. Поскольку текущая версия скрипта не работает, я буду ждать, пока вы ее исправите, прежде чем настраивать ее как правильный ответ. Большое спасибо. – Nyamiou The Galeanthrope 12 October 2010 в 16:47
  • 2
    О, боже, я полностью ввернул это: D Спасибо, я исправил его - также, хорошо, если он использует killall -q вместо проверки, запущен ли процесс? Для меня это не вызывает никаких ошибок. – evgeny 12 October 2010 в 16:54
  • 3
    Это должно быть исправлено сейчас. – evgeny 12 October 2010 в 17:04

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

означает «не делай этого».

3
ответ дан 31 July 2018 в 13:16

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

означает «не делай этого».

3
ответ дан 2 August 2018 в 04:28

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

означает «не делай этого».

3
ответ дан 4 August 2018 в 21:00

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

означает «не делай этого».

3
ответ дан 6 August 2018 в 04:32

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

означает «не делай этого».

3
ответ дан 7 August 2018 в 22:41

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

означает «не делай этого».

3
ответ дан 10 August 2018 в 10:47

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

означает «не делай этого».

3
ответ дан 13 August 2018 в 17:21
  • 1
    Я не понимаю, почему это такая плохая идея. Мой компьютер очень медленный, когда он меняет местами, и большую часть времени я просто перезагружаю компьютер, потому что он быстрее, чем ждать, пока компьютер не разморозит. Я хочу, чтобы избежать этой ситуации, и я не хочу, чтобы память оставалась все время для закрытия приложений. – Nyamiou The Galeanthrope 12 October 2010 в 09:14
  • 2
    Убивать все автоматически может привести к непредсказуемым результатам. Если, скажем, вы работали над отчетом для своего работодателя и решили сыграть в игру, то БУМ! Отчет пропал. Если вы можете сообщить мне список процессов, которые вы, вероятно, будете запускать и хотите убить, опубликуйте список этих нежелательных процессов. В противном случае у вас нет надежного способа работать. – evgeny 12 October 2010 в 09:53
  • 3
    Обратитесь к моему последнему ответу (см. Ниже). – evgeny 12 October 2010 в 12:02
  • 4
    Вы забыли иметь бесконечный цикл, чтобы поддерживать процесс, и это , если [& quot; $ threshold & quot; -ge "$ available" ]; , а не , если [«доступный доступ»] -ge "$ threshold" ]; [D1]!. Я исправил это и добавил проверку, чтобы проверить, работает ли программа , если ps ax | grep -v grep | grep $ browser & gt; / DEV / нуль; затем ... , и он работает отлично. Поскольку текущая версия скрипта не работает, я буду ждать, пока вы ее исправите, прежде чем настраивать ее как правильный ответ. Большое спасибо. – Nyamiou The Galeanthrope 12 October 2010 в 16:47
  • 5
    О, боже, я полностью ввернул это: D Спасибо, я исправил его - также, хорошо, если он использует killall -q вместо проверки, запущен ли процесс? Для меня это не вызывает никаких ошибок. – evgeny 12 October 2010 в 16:54
  • 6
    Это должно быть исправлено сейчас. – evgeny 12 October 2010 в 17:04

Хорошо, здесь идет:

  #! / bin / bash threshold = 100 # Минимальный объем оставшейся памяти, когда вы должны начать убивать, в браузере MB = «firefox-bin» # Change  это то, что вы используете, firefox на самом деле firefox-bin, хотя это правда;  do available = $ (free -m | head -2 | tail -1 | awk '{print $ 4}'), если ["$ threshold" -ge "$ available"];  затем killall -q $ browser # Не будет жаловаться, если никакие процессы не были убиты. fi sleep 20 done  

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

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

3
ответ дан 15 August 2018 в 23:59
  • 1
    Вы забыли иметь бесконечный цикл, чтобы поддерживать процесс, и это , если [& quot; $ threshold & quot; -ge "$ available" ]; , а не , если [«доступный доступ»] -ge "$ threshold" ]; [D1]!. Я исправил это и добавил проверку, чтобы проверить, работает ли программа , если ps ax | grep -v grep | grep $ browser & gt; / DEV / нуль; затем ... , и он работает отлично. Поскольку текущая версия скрипта не работает, я буду ждать, пока вы ее исправите, прежде чем настраивать ее как правильный ответ. Большое спасибо. – Nyamiou The Galeanthrope 12 October 2010 в 16:47
  • 2
    О, боже, я полностью ввернул это: D Спасибо, я исправил его - также, хорошо, если он использует killall -q вместо проверки, запущен ли процесс? Для меня это не вызывает никаких ошибок. – evgeny 12 October 2010 в 16:54
  • 3
    Это должно быть исправлено сейчас. – evgeny 12 October 2010 в 17:04

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

означает «не делай этого».

2
ответ дан 26 May 2018 в 01:09
  • 1
    Я не понимаю, почему это такая плохая идея. Мой компьютер очень медленный, когда он меняет местами, и большую часть времени я просто перезагружаю компьютер, потому что он быстрее, чем ждать, пока компьютер не разморозит. Я хочу, чтобы избежать этой ситуации, и я не хочу, чтобы память оставалась все время для закрытия приложений. – Nyamiou The Galeanthrope 12 October 2010 в 09:14
  • 2
    Убивать все автоматически может привести к непредсказуемым результатам. Если, скажем, вы работали над отчетом для своего работодателя и решили сыграть в игру, то БУМ! Отчет пропал. Если вы можете сообщить мне список процессов, которые вы, вероятно, будете запускать и хотите убить, опубликуйте список этих нежелательных процессов. В противном случае у вас нет надежного способа работать. – evgeny 12 October 2010 в 09:53
  • 3
    Обратитесь к моему последнему ответу (см. Ниже). – evgeny 12 October 2010 в 12:02

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

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

1
ответ дан 26 May 2018 в 01:09

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

1
ответ дан 26 May 2018 в 01:09
  • 1
    Спасибо, похоже, что это хорошо отразилось на выступлениях моего компьютера. – Nyamiou The Galeanthrope 12 October 2010 в 17:20
  • 2
    Рад, что это помогает, кажется, это так и здесь, даже на моей машине 3gb, когда я запускаю большую виртуальную машину или игру. Я бы тоже посмотрел на compcache, но я все еще могу прямо проверить, работает ли он. :( – NightwishFan 13 October 2010 в 11:09

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

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

1
ответ дан 25 July 2018 в 23:07

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

означает «не делай этого».

2
ответ дан 25 July 2018 в 23:07
  • 1
    Я не понимаю, почему это такая плохая идея. Мой компьютер очень медленный, когда он меняет местами, и большую часть времени я просто перезагружаю компьютер, потому что он быстрее, чем ждать, пока компьютер не разморозит. Я хочу, чтобы избежать этой ситуации, и я не хочу, чтобы память оставалась все время для закрытия приложений. – Nyamiou The Galeanthrope 12 October 2010 в 09:14
  • 2
    Убивать все автоматически может привести к непредсказуемым результатам. Если, скажем, вы работали над отчетом для своего работодателя и решили сыграть в игру, то БУМ! Отчет пропал. Если вы можете сообщить мне список процессов, которые вы, вероятно, будете запускать и хотите убить, опубликуйте список этих нежелательных процессов. В противном случае у вас нет надежного способа работать. – evgeny 12 October 2010 в 09:53
  • 3
    Обратитесь к моему последнему ответу (см. Ниже). – evgeny 12 October 2010 в 12:02
  • 4
    Вы забыли иметь бесконечный цикл, чтобы поддерживать процесс, и это if [ "$threshold" -ge "$available" ];, а не if [ "$available" -ge "$threshold" ];. Я скорректировал это и добавил проверку, чтобы проверить, работает ли программа if ps ax | grep -v grep | grep $browser > /dev/null; then ..., и она работает отлично. Поскольку текущая версия скрипта не работает, я буду ждать, пока вы ее исправите, прежде чем настраивать ее как правильный ответ. Большое спасибо. – Nyamiou The Galeanthrope 12 October 2010 в 16:47
  • 5
    О, боже, я полностью ввернул это: D Спасибо, я исправил его - также, хорошо, если он использует killall -q вместо проверки, запущен ли процесс? Для меня это не вызывает никаких ошибок. – evgeny 12 October 2010 в 16:54
  • 6
    Это должно быть исправлено сейчас. – evgeny 12 October 2010 в 17:04

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

1
ответ дан 25 July 2018 в 23:07
  • 1
    Спасибо, похоже, что это хорошо отразилось на выступлениях моего компьютера. – Nyamiou The Galeanthrope 12 October 2010 в 17:20
  • 2
    Рад, что это помогает, кажется, это так и здесь, даже на моей машине 3gb, когда я запускаю большую виртуальную машину или игру. Я бы тоже посмотрел на compcache, но я все еще могу прямо проверить, работает ли он. :( – NightwishFan 13 October 2010 в 11:09

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

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

1
ответ дан 31 July 2018 в 13:16

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

1
ответ дан 31 July 2018 в 13:16
  • 1
    Спасибо, похоже, что это хорошо отразилось на выступлениях моего компьютера. – Nyamiou The Galeanthrope 12 October 2010 в 17:20
  • 2
    Рад, что это помогает, кажется, это так и здесь, даже на моей машине 3gb, когда я запускаю большую виртуальную машину или игру. Я бы тоже посмотрел на compcache, но я все еще могу прямо проверить, работает ли он. :( – NightwishFan 13 October 2010 в 11:09

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

1
ответ дан 2 August 2018 в 04:28

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

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

1
ответ дан 2 August 2018 в 04:28

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

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

1
ответ дан 4 August 2018 в 21:00

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

1
ответ дан 4 August 2018 в 21:00

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

1
ответ дан 6 August 2018 в 04:32

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

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

1
ответ дан 6 August 2018 в 04:32

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

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

1
ответ дан 7 August 2018 в 22:41

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

1
ответ дан 7 August 2018 в 22:41

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

1
ответ дан 10 August 2018 в 10:47

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

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

1
ответ дан 10 August 2018 в 10:47

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

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

1
ответ дан 13 August 2018 в 17:21

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

1
ответ дан 13 August 2018 в 17:21
  • 1
    Спасибо, похоже, что это хорошо отразилось на выступлениях моего компьютера. – Nyamiou The Galeanthrope 12 October 2010 в 17:20
  • 2
    Рад, что это помогает, кажется, это так и здесь, даже на моей машине 3gb, когда я запускаю большую виртуальную машину или игру. Я бы тоже посмотрел на compcache, но я все еще могу прямо проверить, работает ли он. :( – NightwishFan 13 October 2010 в 11:09

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

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