Po siedmiu miesiącach rozwoju wydanie procesu w tle , który okresowo sprawdza dostępność pamięci (MemAvailable, SwapFree) i stara się wczesnym etapie reagować na wystąpienie niedoboru pamięci.
Jeśli ilość dostępnej pamięci jest mniejsza od ustalonej wartości, earlyoom wymusi (poprzez wysłanie SIGTERM lub SIGKILL) zakończenie procesu, który najbardziej intensywnie zużywa pamięć (mającego najwyższy wskaźnik /proc/*/oom_score), nie doprowadzając stanu systemu do oczyszczenia buforów systemowych i utrudniając działanie swapowania (handler OOM (Out Of Memory) w jądrze uruchamia się, gdy stan niedoboru pamięci już osiągnął krytyczne wartości i zwykle w tym momencie system już nie reaguje na działania użytkownika).
Earlyoom obsługuje wysyłanie powiadomień o wymuszonym zakończeniu procesów na pulpit (za pomocą notify-send), a także zapewnia możliwość definiowania reguł, w których przy użyciu wyrażeń regularnych można określić nazwy procesów, których zakończenia się preferuje (opcja «—prefer») lub których należy unikać (opcja «—avoid»).
Główne zmiany w nowej wersji:
- Wdrożono oczekiwanie na zakończenie procesu po wysłaniu mu sygnału. Rozwiązuje to problem, że earlyoom czasami zabija więcej niż jeden proces, gdy jeden byłby wystarczający;
- Dodano pomocniczy skrypt (notify_all_users.py) do powiadamiania wszystkich zalogowanych użytkowników o zakończeniu procesów przez notify-send;
- Poprawiono nieprawidłowe wyświetlanie niektórych nazw procesów zawierających znaki UTF-8;
- Przyjęto kodeks postępowania (Contributor Covenant Code of Conduct).
Źródło: opennet.ru
