• [^] # Re: Le bon chasseur et le mauvais chasseur

    Posté par . En réponse à la dépêche systemd : l’init martyrisé, l’init bafoué, mais l’init libéré !. Évalué à 5.

    Les cgroups permettent de coller une balise sur un processus. C'est particulièrement utile parce que cela permet notamment :

    1. d'affecter des ressources à ce cgroup ;
    2. d'en contrôler l'exécution ;
    3. de garder toujours trace de ce processus et de ses descendants.

    Le 1 est tout simple : on peut limiter le volume de mémoire, la quantité de processeur ou d'entrée/sortie auquel le cgroup aura accès.

    Le 2 rend possible de suspendre une application pour la redémarrer plus tard. Une sorte d'hibernation partielle.

    Le 3 est à mes yeux fondamental, c'est le seul moyen que je connaisse pour surveiller totalement un processus, et c'est ce que fait systemd, cf systemd for Administrators, Part II. Sinon, à coup de forks et autres astuces, une application peut fausser compagnie à son moniteur.
    D'ailleurs, le besoin tout simple de lancer une appli en mode démon avec redémarrage automatique en cas d'arrêt, ce besoin naturel était très dur à satisfaire avec sysvinit. start-stop-demon ne suffit pas, et si le processus n'écrit pas son pid, monit non plus. Il fallait bidouiller ou recourir à runit et toute sa complexité. Désormais, ça se fait en 5 lignes évidentes.