[lxc-devel] [PATCH 1/1] add lxc.console.logpath

Serge Hallyn serge.hallyn at ubuntu.com
Wed Aug 6 17:30:58 UTC 2014


Some time ago, lxc.console was changed to require a device.  lxc-start
gained an lxc console logfile argument, but this was not supported
through the container config.

This patch adds the option through container config as 'lxc.console.logfile'.
This allows for instance cloud providers to configure all containers to
log the consoles.

Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
---
 doc/lxc.container.conf.sgml.in | 17 ++++++++++++++---
 src/lxc/confile.c              |  8 ++++++++
 2 files changed, 22 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..a1be76f 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);
-- 
2.1.0.rc1



More information about the lxc-devel mailing list