web-dev-qa-db-fra.com

pourquoi cgconfig.conf n'est pas lu au redémarrage du 14.04?

J'ai récemment mis à jour une version de 12.04 à 14.04 et j'ai découvert que mon fichier cgconfig.conf n'était plus lu au démarrage.

Le fichier semble être correct, dans le sens où je peux le charger explicitement avec

Sudo cgconfigparser -l /etc/cgconfig.conf

mais cela ne se produit pas automatiquement au redémarrage, ce qui signifie que d'autres scripts exécutés au démarrage échouent (car ils reposent sur cgexec avec des groupes définis dans cgconfig.conf).

Dois-je faire quelque chose pour que le fichier soit automatiquement utilisé? (c'est-à-dire installer un paquet) Dois-je convertir ce fichier en un autre?

Auparavant, cela fonctionnait correctement avant la mise à niveau, je ne comprends donc pas ce qui pourrait ne pas être correct.

Le paquetage "cgroup-lite", qui, à mon avis, devrait en être responsable, est également installé.

Merci d'avance.

5
riffraff

Cela ressemble à une régression due au correctif du bogue # 1096771 . Il y avait quelques scripts init dans cgroup-bin dans 12.04, qui ont été supprimés dans 13.04. Le fichier de service /etc/init/cgconfig.conf contenait cela dans la strophe pre-start script:

/usr/sbin/cgconfigparser -l $CGCONFIG

C'est donc le service cgconfig du package cgroup-bin qui a réellement configuré votre configuration de groupe de contrôle. cgroup-lite n'a pas beaucoup changé entre ces versions, donc je suppose que ce n'est pas censé lire cette configuration. Je vous recommande d'ouvrir un rapport de bogue (et peut-être d'écrire un nouveau service Upstart (ou de copier l'ancien) car il est peu probable que cela change dans une version de LTS).


Comme 12.04 est toujours pris en charge, vous pouvez utiliser l’index des packages pour télécharger l’ancienne version du package. J'ai reproduit /etc/init/cgconfig.conf ici pour plus de commodité:

description "cgconfig"
author "Serge E. Hallyn <[email protected]>"

start on runlevel [2345]

console output

pre-start script
    test -x /usr/sbin/cgconfigparser || { stop; exit 0; }

    CREATE_DEFAULT="yes"
    CGCONFIG=/etc/cgconfig.conf
    if [ -r /etc/default/cgconfig ]; then
        . /etc/default/cgconfig
    fi

    # If we've already run, don't do it again!
    if grep -q /sys/fs/cgroup /proc/mounts; then
        stop
        exit 0
    fi

    [ -r $CGCONFIG ] || { echo "$CGCONFIG is empty"; stop; exit 0; }

    mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroups /sys/fs/cgroup
    /usr/sbin/cgconfigparser -l $CGCONFIG
    if [ "$CREATE_DEFAULT" = "yes" ]; then
        /usr/sbin/create_default_cgroups
    fi
end script

post-stop script
    if [ -x /usr/sbin/cgclear ]
    then
        /usr/sbin/cgclear
    fi
    umount /sys/fs/cgroup || true
end script
4
muru