[lxc-devel] [PATCH] add lxc.console.logpath (v2)
Serge Hallyn
serge.hallyn at ubuntu.com
Wed Aug 6 22:39:45 UTC 2014
v2: add get_config_item
clear_config_item is not supported, as it isn't for lxc.console, bc
you can do 'lxc.console.logfile =' to clear it. Likewise save_config
is not needed because the config is now just written through the
unexpanded char*.
Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
---
doc/lxc.container.conf.sgml.in | 17 ++++++++++++++---
src/lxc/confile.c | 10 ++++++++++
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/doc/lxc.container.conf.sgml.in b/doc/lxc.container.conf.sgml.in
index a4485bc..121f882 100644
--- a/doc/lxc.container.conf.sgml.in
+++ b/doc/lxc.container.conf.sgml.in
@@ -536,13 +536,24 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
<variablelist>
<varlistentry>
<term>
- <option>lxc.console</option>
+ <option>lxc.console.logfile</option>
</term>
<listitem>
<para>
Specify a path to a file where the console output will
- be written. The keyword 'none' will simply disable the
- console. This is dangerous once if have a rootfs with a
+ be written.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>lxc.console</option>
+ </term>
+ <listitem>
+ <para>
+ Specify a path to a device to which the console will be
+ attached. The keyword 'none' will simply disable the
+ console. This is dangerous once if have a rootfs with a
console device file where the application can write, the
messages will fall in the host.
</para>
diff --git a/src/lxc/confile.c b/src/lxc/confile.c
index 26ac682..5de1241 100644
--- a/src/lxc/confile.c
+++ b/src/lxc/confile.c
@@ -89,6 +89,7 @@ static int config_network_ipv6_gateway(const char *, const char *, struct lxc_co
static int config_cap_drop(const char *, const char *, struct lxc_conf *);
static int config_cap_keep(const char *, const char *, struct lxc_conf *);
static int config_console(const char *, const char *, struct lxc_conf *);
+static int config_console_logfile(const char *, const char *, struct lxc_conf *);
static int config_seccomp(const char *, const char *, struct lxc_conf *);
static int config_includefile(const char *, const char *, struct lxc_conf *);
static int config_network_nic(const char *, const char *, struct lxc_conf *);
@@ -146,6 +147,7 @@ static struct lxc_config_t config[] = {
{ "lxc.network", config_network },
{ "lxc.cap.drop", config_cap_drop },
{ "lxc.cap.keep", config_cap_keep },
+ { "lxc.console.logfile", config_console_logfile },
{ "lxc.console", config_console },
{ "lxc.seccomp", config_seccomp },
{ "lxc.include", config_includefile },
@@ -1604,6 +1606,12 @@ static int config_console(const char *key, const char *value,
return config_path_item(&lxc_conf->console.path, value);
}
+static int config_console_logfile(const char *key, const char *value,
+ struct lxc_conf *lxc_conf)
+{
+ return config_path_item(&lxc_conf->console.log_path, value);
+}
+
int append_unexp_config_line(const char *line, struct lxc_conf *conf)
{
size_t len = conf->unexpanded_len, linelen = strlen(line);
@@ -2261,6 +2269,8 @@ int lxc_get_config_item(struct lxc_conf *c, const char *key, char *retv,
return lxc_get_cgroup_entry(c, retv, inlen, key + 11);
else if (strcmp(key, "lxc.utsname") == 0)
v = c->utsname ? c->utsname->nodename : NULL;
+ else if (strcmp(key, "lxc.console.logfile") == 0)
+ v = c->console.log_path;
else if (strcmp(key, "lxc.console") == 0)
v = c->console.path;
else if (strcmp(key, "lxc.rootfs.mount") == 0)
--
2.1.0.rc1
More information about the lxc-devel
mailing list