por que o cgconfig.conf não está sendo lido na reinicialização em 14.04?

5

Eu realmente atualizei um release de 12.04 para 14.04, e descobri que meu arquivo cgconfig.conf não está mais sendo lido na inicialização.

O arquivo parece estar correto, no sentido de que posso explicitamente carregá-lo com

sudo cgconfigparser -l /etc/cgconfig.conf

mas isso não acontece automaticamente na reinicialização, o que significa que outros scripts executados na inicialização falham (porque eles dependem do cgexec com grupos definidos no cgconfig.conf).

Há algo que preciso fazer para que o arquivo seja usado automaticamente? (por exemplo, instalar algum pacote) Eu tenho que de alguma forma converter este arquivo para algum outro?

Isso costumava funcionar corretamente antes da atualização, por isso estou confuso sobre o que pode estar errado.

O pacote "cgroup-lite", que eu acho que deveria ser responsável por isso, também está instalado.

Obrigado antecipadamente.

    
por riffraff 25.09.2014 / 10:31

1 resposta

4

Isto parece uma regressão devido à correção do bug # 1096771 . Havia alguns scripts de inicialização em cgroup-bin em 12.04, que foram removidos em 13.04. O arquivo /etc/init/cgconfig.conf service continha isso na sub-rotina pre-start script :

/usr/sbin/cgconfigparser -l $CGCONFIG

Portanto, foi o serviço cgconfig do pacote cgroup-bin que realmente configurou sua configuração do cgroup. cgroup-lite não mudou muito entre esses lançamentos, então presumo que não se queira ler essa configuração. Eu recomendo que você abra um relatório de bug (e talvez escreva um novo serviço do Upstart (ou copie o antigo) já que é improvável que ele mude isso em uma versão LTS).

Como o 12.04 ainda é suportado, você pode usar o índice de Pacotes para fazer o download da versão mais antiga do pacote. Eu reproduzi /etc/init/cgconfig.conf aqui por conveniência:

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
    
por muru 28.09.2014 / 15:34