După opt luni de dezvoltare lansarea procesului de fundal , care verifică periodic volumul de memorie disponibilă (MemAvailable, SwapFree) și încearcă să reacționeze din timp la apariția unei lipse de memorie. Codul proiectului este scris în C și sub licența MIT.
Dacă volumul de memorie disponibilă este mai mic decât valoarea setată, earlyoom va termina forțat (prin trimiterea SIGTERM sau SIGKILL) procesul care consumă cel mai mult memorie (având cea mai mare valoare în /proc/*/oom_score), fără a lăsa starea sistemului să ajungă la curățarea bufferelor de sistem și fără a împiedica swapparea (handlerul OOM (Out Of Memory) din nucleu se activează atunci când starea de insuficiență de memorie a ajuns deja la niveluri critice și, de obicei, în acel moment sistemul nu mai răspunde la acțiunile utilizatorului).
Earlyoom suportă trimiterea de notificări despre procesele terminate forțat pe desktop (prin notify-send), precum și oferă posibilitatea de a defini reguli, în care prin expresii regulate se pot specifica numele proceselor, al căror finalizare este preferabilă (opțiunea „—prefer”) sau a căror oprire trebuie evitată (opțiunea „—avoid”).
Principalele în noua versiune:
- Datorită atributelor proceselor, logica de selectare a proceselor pentru terminare a fost accelerată cu 50%;
- S-a asigurat înregistrarea în jurnal a UID-ului procesului terminat, pe lângă PID și numele procesului;
- A fost adăugată evidențierea jurnalului de depanare cu o nuanță de gri deschis;
- A fost efectuată o curățare a codului;
- A fost utilizat, dacă este posibil, un anunț pentru variabilele locale în blocuri;
- A fost adăugată setarea PATH_LEN pentru a înlocui valoarea integrată a dimensiunii buffer-ului;
- S-a asigurat rularea cppcheck, dacă este disponibil;
- A fost adăugat testul de performanță „make bench”;
- Setul de teste a fost extins (make test);
- A fost implementată resetarea privilegiilor root în fișierul unității systemd earlyoom.service. Această modificare introduce posibilitatea notificărilor GUI. Pentru a activa notificările GUI, se recomandă returnarea drepturilor root, de-commentând „DynamicUser=true”. Dezactivarea root-ului permite, de asemenea, imposibilitatea de a obține informații despre consumul de memorie atunci când /proc este montat în modul hidepid=1 sau hidepid=2.
Sursa: opennet.ro
