Après huit mois de développement la publication du processus en arrière-plan , qui vérifie périodiquement la quantité de mémoire disponible (MemAvailable, SwapFree) et tente de réagir dès le début à l'apparition d'un manque de mémoire. Le code du projet est écrit en C et sous licence MIT.
Si la quantité de mémoire disponible est inférieure à une valeur spécifiée, earlyoom termine de force (en envoyant SIGTERM ou SIGKILL) le processus qui consomme le plus de mémoire (ayant la plus grande valeur /proc/*/oom_score), sans laisser l'état du système atteindre le nettoyage des buffers système et nuire au fonctionnement de l'échange (le gestionnaire OOM (Out Of Memory) dans le noyau s'active lorsque l'état de manque de mémoire a déjà atteint des niveaux critiques et, en général, à ce moment-là, le système ne répond plus à l'utilisateur).
Earlyoom prend en charge l'envoi de notifications concernant les processus terminés de force sur le bureau (via notify-send), et offre également la possibilité de définir des règles dans lesquelles, à l'aide d'expressions régulières, les noms des processus dont la fermeture est préférée (option «—prefer») ou dont il vaut mieux éviter la fermeture (option «—avoid») peuvent être spécifiés.
Principales dans la nouvelle version :
- Grâce à des attributs des processus, la logique de sélection des processus à terminer a été accélérée de 50 % ;
- Le journal enregistre désormais le UID du processus terminé, en plus du PID et du nom du processus ;
- Une mise en surbrillance du journal de débogage a été ajoutée en gris clair ;
- Le code a été nettoyé ;
- Des déclarations de variables locales ont été utilisées autant que possible pour les blocs ;
- Un paramètre PATH_LEN a été ajouté pour remplacer la valeur intégrée de la taille du tampon ;
- L'exécution de cppcheck a été assurée si disponible ;
- Un test de performance « make bench » a été ajouté ;
- Le jeu de tests a été élargi (make test) ;
- La réinitialisation des privilèges root dans le fichier unitaire systemd earlyoom.service a été mise en œuvre. Ce changement introduit la possibilité de notifications GUI. Pour activer les notifications GUI, il est proposé de rétablir les droits root en décommentant « DynamicUser=true ». La désactivation du root l'incapacité d'obtenir des informations sur l'utilisation de la mémoire lorsque /proc est monté en mode hidepid=1 ou hidepid=2.
Source : opennet.ru
