diff --git a/src/lxc/conf.c b/src/lxc/conf.c index 9700c7aa2..e30c720ba 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -2768,8 +2768,10 @@ int lxc_setup(const char *name, struct lxc_conf *lxc_conf) return -1; } - if (setup_kmsg(&lxc_conf->rootfs, &lxc_conf->console)) // don't fail - ERROR("failed to setup kmsg for '%s'", name); + if (lxc_conf->kmsg) { + if (setup_kmsg(&lxc_conf->rootfs, &lxc_conf->console)) // don't fail + ERROR("failed to setup kmsg for '%s'", name); + } if (setup_tty(&lxc_conf->rootfs, &lxc_conf->tty_info, lxc_conf->ttydir)) { ERROR("failed to setup the ttys for '%s'", name); diff --git a/src/lxc/conf.h b/src/lxc/conf.h index 4c25970f3..f05c0737b 100644 --- a/src/lxc/conf.h +++ b/src/lxc/conf.h @@ -278,6 +278,7 @@ struct lxc_conf { int maincmd_fd; int autodev; // if 1, mount and fill a /dev at start int stopsignal; // signal used to stop container + int kmsg; // if 1, create /dev/kmsg symlink char *rcfile; // Copy of the top level rcfile we read }; diff --git a/src/lxc/confile.c b/src/lxc/confile.c index cd02b2e2c..cf5e3aec1 100644 --- a/src/lxc/confile.c +++ b/src/lxc/confile.c @@ -56,6 +56,7 @@ static int config_personality(const char *, const char *, struct lxc_conf *); static int config_pts(const char *, const char *, struct lxc_conf *); static int config_tty(const char *, const char *, struct lxc_conf *); static int config_ttydir(const char *, const char *, struct lxc_conf *); +static int config_kmsg(const char *, const char *, struct lxc_conf *); #if HAVE_APPARMOR static int config_aa_profile(const char *, const char *, struct lxc_conf *); #endif @@ -97,6 +98,7 @@ static struct lxc_config_t config[] = { { "lxc.pts", config_pts }, { "lxc.tty", config_tty }, { "lxc.devttydir", config_ttydir }, + { "lxc.kmsg", config_kmsg }, #if HAVE_APPARMOR { "lxc.aa_profile", config_aa_profile }, #endif @@ -933,6 +935,16 @@ static int config_ttydir(const char *key, const char *value, return 0; } +static int config_kmsg(const char *key, const char *value, + struct lxc_conf *lxc_conf) +{ + int v = atoi(value); + + lxc_conf->kmsg = v; + + return 0; +} + #if HAVE_APPARMOR static int config_aa_profile(const char *key, const char *value, struct lxc_conf *lxc_conf)