-<!--
+<!--
lxc: linux Container library
(C) Copyright IBM Corp. 2007, 2008
Authors:
-Daniel Lezcano <dlezcano at fr.ibm.com>
+Daniel Lezcano <daniel.lezcano at free.fr>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-->
-<!DOCTYPE refentry PUBLIC "-//Davenport//DTD DocBook V3.0//EN">
+<!DOCTYPE refentry PUBLIC @docdtd@ [
+
+<!ENTITY commonoptions SYSTEM "@builddir@/common_options.sgml">
+<!ENTITY seealso SYSTEM "@builddir@/see_also.sgml">
+]>
<refentry>
<refsynopsisdiv>
<cmdsynopsis>
- <command>lxc-execute <replaceable>-n name</replaceable>
- <optional>-f config_file</optional>
- <replaceable>command</replaceable>
- </command>
+ <command>lxc-execute</command>
+ <arg choice="req">-n <replaceable>name</replaceable></arg>
+ <arg choice="opt">-d</arg>
+ <arg choice="opt">-f <replaceable>config_file</replaceable></arg>
+ <arg choice="opt">-s KEY=VAL</arg>
+ <arg choice="opt">-u, --uid <replaceable>uid</replaceable></arg>
+ <arg choice="opt">-g, --gid <replaceable>gid</replaceable></arg>
+ <arg choice="opt">-- <replaceable>command</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<title>Description</title>
<para>
- <command>lxc-execute</command> runs
- the <replaceable>command</replaceable> inside the container
- specified by <replaceable>name</replaceable>. This command
- should be used to launch an application, eg. sshd or bash.
+ <command>lxc-execute</command> runs the specified
+ <replaceable>command</replaceable> inside the container
+ specified by <replaceable>name</replaceable>.
</para>
-
<para>
- If the container does not exist, it is automatically created and
- destroyed at the end. The command can use the configuration file
- to create itself the container
- like <command>lxc-create</command> would do and will destroy the
- container when the application exits. If the container was
- previously created with the lxc-create command, when the
- application exits, the container is not destroyed and it can be
- reused later.
+ It will setup the container
+ according to the configuration previously defined with the
+ lxc-create command or with the configuration file parameter.
+ If no configuration is
+ defined, the default isolation is used.
</para>
-
<para>
This command is mainly used when you want to quickly launch an
- application in an isolated environment. It will create an
- intermediate process allowing you application to daemonize in
- the pid namespace and will mount the proc filesystem to complete
- the pid isolation.
+ application in an isolated environment.
</para>
-
+ <para>
+ <command>lxc-execute</command> command will run the
+ specified command into the container via an intermediate
+ process, <command>lxc-init</command>.
+ This lxc-init after launching the specified command,
+ will wait for its end and all other reparented processes.
+ (to support daemons in the container).
+ In other words, in the
+ container, <command>lxc-init</command> has the pid 1 and the
+ first process of the application has the pid 2.
+ </para>
+ <para>
+ The above <command>lxc-init</command> is designed to forward received
+ signals to the started command.
+ </para>
</refsect1>
<refsect1>
<varlistentry>
<term>
- <option>-n <replaceable>name</replaceable></option>
+ <option>-f, --rcfile <replaceable>config_file</replaceable></option>
</term>
<listitem>
<para>
- Specify the container name to be executed.
+ Specify the configuration file to configure the virtualization
+ and isolation functionalities for the container.
+ </para>
+ <para>
+ This configuration file if present will be used even if there is
+ already a configuration file present in the previously created
+ container (via lxc-create).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-s, --define <replaceable>KEY=VAL</replaceable></option>
+ </term>
+ <listitem>
+ <para>
+ Assign value <replaceable>VAL</replaceable> to configuration
+ variable <replaceable>KEY</replaceable>. This overrides any
+ assignment done in <replaceable>config_file</replaceable>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <option>-f <replaceable>config_file</replaceable></option>
+ <option>-d, --daemon</option>
</term>
<listitem>
<para>
- Specify the configuration file to configure the virtualization
- and isolation functionalities for the container.
+ Run the container as a daemon. As the container has no
+ more tty, if an error occurs nothing will be displayed,
+ the log file can be used to check the error.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--u, --uid <replaceable>uid</replaceable></option>
+ </term>
+ <listitem>
+ <para>
+ Executes the <replaceable>command</replaceable> with user ID
+ <replaceable>uid</replaceable> inside the container.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--g, --gid <replaceable>gid</replaceable></option>
+ </term>
+ <listitem>
+ <para>
+ Executes the <replaceable>command</replaceable> with group ID
+ <replaceable>gid</replaceable> inside the container.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--</option></term>
+ <listitem>
+ <para>
+ Signal the end of options and disables further option
+ processing. Any arguments after the -- are treated as
+ arguments to <replaceable>command</replaceable>.
+ </para>
+ <para>
+ This option is useful when you want specify options
+ to <replaceable>command</replaceable> and don't want
+ <command>lxc-execute</command> to interpret them.
</para>
</listitem>
</varlistentry>
</refsect1>
+ &commonoptions;
+
<refsect1>
<title>Diagnostic</title>
container or create a new one.
</para>
</listitem>
- </varlistentry>
+ </varlistentry>
</variablelist>
</refsect1>
- <refsect1>
- <title>See Also</title>
-
- <simpara>
- <citerefentry>
- <refentrytitle><command>lxc-create</command></refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>,
-
- <citerefentry>
- <refentrytitle><command>lxc-destroy</command></refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>,
-
- <citerefentry>
- <refentrytitle><command>lxc-start</command></refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>,
-
- <citerefentry>
- <refentrytitle><command>lxc-stop</command></refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>,
-
- <citerefentry>
- <refentrytitle><command>lxc.conf</command></refentrytitle>
- <manvolnum>5</manvolnum>
- </citerefentry>
-
- </simpara>
-
-
- </refsect1>
+ &seealso;
<refsect1>
<title>Author</title>