Po ôsmich mesiacoch vývoja bolo vydanie pozadia procesu , ktorý pravidelne kontroluje objem dostupnej pamäte (MemAvailable, SwapFree) a snaží sa včas reagovať na vznik nedostatku pamäte. Kód projektu je napísaný v jazyku C a je pod licenciou MIT.
Ak je objem dostupnej pamäte nižší než stanovená hodnota, earlyoom nútene (prostredníctvom odoslania SIGTERM alebo SIGKILL) ukončí proces, ktorý najaktívnejšie spotrebováva pamäť (má najvyššiu hodnotu /proc/*/oom_score), bez toho, aby došlo k vymazaniu systémových buffers a zamedzilo sa swapovaniu (stránkovanie; OOM (Out Of Memory) handler v jadre sa spustí, keď stav nedostatku pamäte už dosiahne kritické hodnoty a obvykle v tomto momente systém už nereaguje na akcie používateľa).
Earlyoom podporuje odosielanie upozornení o nútene ukončených procesoch na plochu (pomocou notify-send), a taktiež poskytuje možnosť definovať pravidlá, v ktorých pomocou regulárnych výrazov môžu byť zadané názvy procesov, ktorých ukončenie je preferované (možnosť „—prefer“) alebo ktorých zastaveniu sa treba vyhnúť (možnosť „—avoid“).
Hlavné v novom vydaní:
- Vďaka atribútov procesov sa logika výberu procesov na ukončenie zrýchlila o 50%;
- Zaznamenávanie UID ukončeného procesu bolo pridané do logu, okrem PID a názvu procesu;
- Bola pridaná svetlo šedá farba na zvýraznenie ladacieho logu;
- Prebehla úprava kódu;
- Podľa možnosti sa použilo vyhlásenie lokálnych premenných pre bloky;
- Bola pridaná konfigurácia PATH_LEN na nahradenie hardkodovanej hodnoty veľkosti buffera;
- Zabezpečený štart cppcheck, ak je k dispozícii;
- Pridaný test výkonu „make bench“;
- Rozšírená zbierka testov (make test);
- Implementované zníženie práv roota v unit súbore systemd earlyoom.service. Táto zmena možnosť GUI upozornení. Pre povolenie GUI upozornení sa odporúča vrátiť práva roota, odkomentovaním „DynamicUser=true“. Vypnutie roota tiež vedie k nemožnosti získania informácií o spotrebe pamäte pri montovaní /proc v režime hidepid=1 alebo hidepid=2.
Zdroj: opennet.ru
