Nach acht Monaten Entwicklung Hintergrundprozess starten , который периодически проверяет объем доступной памяти (MemAvailable, SwapFree) и пытается на ранней стадии отреагировать на возникновения нехватки памяти. Код проекта написан на языке Си и под лицензий MIT.
Wenn der verfügbare Speicher unter einen festgelegten Wert fällt, beendet earlyoom zwangsweise (durch das Senden von SIGTERM oder SIGKILL) den Prozess, der den meisten Speicher verbraucht (mit dem höchsten Wert in /proc/*/oom_score), ohne den Zustand des Systems bis zur Bereinigung der Systempuffer zu bringen, wodurch das Swapping beeinträchtigt wird (der OOM-Handler (Out Of Memory) im Kernel wird aktiviert, wenn die Speicherknappheit kritische Werte erreicht hat, und in der Regel reagiert das System zu diesem Zeitpunkt nicht mehr auf Benutzeraktionen).
Earlyoom unterstützt die Benachrichtigung über zwangsweise beendete Prozesse auf dem Desktop (mit notify-send) und bietet die Möglichkeit, Regeln festzulegen, in denen Prozessnamen mithilfe von regulären Ausdrücken definiert werden können, deren Beendigung bevorzugt wird (Option „—prefer“) oder deren Stopp zu vermeiden ist (Option „—avoid“).
Haupt in der neuen Ausgabe:
- За счёт атрибутов процессов на 50% ускорена логика выбора процессов для завершения;
- Обеспечено отражение в логе UID завершаемого процесса, в дополнение к PID и имени процесса;
- Добавлена подсветка отладочного лога светло серым цветом;
- Der Code wurde bereinigt;
- По возможности использовано объявление локальных для блоков переменных;
- Добавлена настройка PATH_LEN для замены вшитого в код значения размера буфера;
- Обеспечен запуск cppcheck при его наличии;
- Добавлен тест производительности «make bench»;
- Расширен набор тестов (make test);
- Реализован сброс привилегий root в unit-файле systemd earlyoom.service. Это изменение возможность GUI уведомлений. Для включения GUI уведомлений предлагается вернуть root права, раскомментировав «DynamicUser=true». Отключение root также к невозможности получения сведений о потреблении памяти при монтировании /proc в режиме hidepid=1 или hidepid=2.
Quelle: opennet.ru
