Após oito 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 nas fases iniciais à falta de memória. O código do projeto foi escrito na linguagem C e está sob a licença MIT.
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").
Principais na nova versão:
- Devido a a lógica de seleção de processos para terminar foi acelerada em 50%;
- O UID do processo finalizado é registrado no log, além do PID e do nome do processo;
- Acrescentada a coloração do log de depuração em cinza claro;
- Limpeza de código realizada;
- Sempre que possível, foi usado a declaração de variáveis locais para os blocos;
- Acrescentada a configuração PATH_LEN para substituir o valor do tamanho do buffer embutido no código;
- Garantido a execução do cppcheck quando disponível;
- Adicionado teste de desempenho 'make bench';
- Conjunto de testes expandido (make test);
- Foi implementado o reset de privilégios root no arquivo unit do systemd earlyoom.service. Esta mudança possibilita notificações GUI. Para habilitar as notificações GUI, sugere-se restaurar os direitos de root descomentando 'DynamicUser=true'. A desativação do root também impede a obtenção de informações sobre o consumo de memória ao montar /proc no modo hidepid=1 ou hidepid=2.
Fonte: opennet.ru
