web-dev-qa-db-ja.com

14.04の再起動時にcgconfig.confが読み取られないのはなぜですか?

最近、リリースを12.04から14.04にアップグレードしましたが、起動時にcgconfig.confファイルが読み取られなくなっていることがわかりました。

私は明示的にそれをロードできるという意味で、ファイルは正しいようです

Sudo cgconfigparser -l /etc/cgconfig.conf

ただし、これは再起動時に自動的に行われません。つまり、起動時に他のスクリプトが失敗します(cgconfig.confで定義されたグループでcgexecに依存しているため)。

ファイルを自動的に使用するために必要なことはありますか? (つまり、パッケージをインストールします)このファイルを何らかの方法で他のファイルに変換する必要がありますか?

これは、アップグレード前は正常に機能していたため、何が間違っているのかについて混乱しています。

「cgroup-lite」パッケージ(これに責任があると思う)もインストールされます。

前もって感謝します。

5
riffraff

これは、バグ #1096771 の修正による退行のように見えます。 12.04のcgroup-binにはいくつかの初期化スクリプトがあり、13.04で削除されました。 /etc/init/cgconfig.confサービスファイルには、pre-start scriptスタンザにこれが含まれています。

/usr/sbin/cgconfigparser -l $CGCONFIG

したがって、cgroup構成を実際にセットアップしたのは、cgroup-binパッケージのcgconfigサービスでした。 cgroup-liteはこれらのリリース間であまり変更されていないため、この構成を読むことを意図したものではないと思います。バグレポートを開くことをお勧めします(LTSリリースで変更される可能性は低いため、新しいUpstartサービスを作成する(または古いサービスをコピーする)ことをお勧めします)。


12.04は引き続きサポートされているため、 パッケージインデックス を使用して、古いバージョンのパッケージをダウンロードできます。便宜上、/etc/init/cgconfig.confをここに再現しました。

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