]> git.proxmox.com Git - mirror_lxc.git/blobdiff - doc/lxc-execute.sgml.in
af_unix: add lxc_abstract_unix_send_fds_iov
[mirror_lxc.git] / doc / lxc-execute.sgml.in
index c14ed72a53cb6fe2e91b41f854375999a08e3ea5..617888c08419e7cc06c5a1f694a2fe4e7f585785 100644 (file)
@@ -1,11 +1,11 @@
-<!-- 
+<!--
 
 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
@@ -19,11 +19,15 @@ Lesser General Public License for more details.
 
 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>
 
@@ -44,10 +48,14 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
   <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>
 
@@ -55,31 +63,36 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
     <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>
@@ -88,23 +101,82 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
       <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>
@@ -113,6 +185,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
   </refsect1>
 
+  &commonoptions;
+
   <refsect1>
     <title>Diagnostic</title>
 
@@ -127,45 +201,13 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
            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>