Após sete meses de desenvolvimento lançamento do processo em segundo plano , que verifica periodicamente a quantidade de memória disponível (MemAvailable, SwapFree) e tenta reagir antecipadamente à escassez de memória.
Se a quantidade de memória disponível for menor do que o valor definido, o earlyoom encerrará forçadamente (enviando SIGTERM ou SIGKILL) o processo que consome mais memória (com o maior valor em /proc/*/oom_score), sem deixar o sistema em estado de limpeza de buffers e atrapalhando o funcionamento da troca (o manipulador OOM (Out Of Memory) no núcleo é acionado quando a situação de falta de memória atinge valores críticos e, geralmente, nesse ponto o sistema já não responde às ações do usuário).
Earlyoom suporta o envio de notificações sobre processos encerrados forçadamente para a área de trabalho (por meio de notify-send), e também fornece a possibilidade de definir regras, nas quais, utilizando expressões regulares, podem ser especificados nomes de processos cujo encerramento é preferível (opção "—prefer") ou dos quais deve-se evitar a interrupção (opção "—avoid").
Mudanças principais na nova versão:
- Foi implementada a espera pelo término do processo após o envio do sinal. Isso elimina a problemática de que o earlyoom às vezes encerra mais de um processo quando apenas um seria suficiente;
- Adicionado um script auxiliar (notify_all_users.py) para notificar todos os usuários logados sobre o término de processos via notify-send;
- Corrigida a exibição incorreta de alguns nomes de processos que contêm caracteres UTF-8;
- Um código de conduta foi adotado (Contributor Covenant Code of Conduct).
Fonte: opennet.ru
