mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-05 01:42:33 +00:00

This adds new functionality to lxc-autostart. *) The -g / --groups option is multiple cummulative entry. This may be mixed freely with the previous comma separated group list convention. Groups are processed in the order they first appear in the aggregated group list. *) The NULL group may be specified in the group list using either a leading comma, a trailing comma, or an embedded comma. *) Booting proceeds in order of the groups specified on the command line then ordered by lxc.start.order and name collalating sequence. *) Default host bootup is now specified as "-g onboot," meaning that first the "onboot" group is booted and then any remaining enabled containers in the NULL group are booted. *) Adds documentation to lxc-autostart for -g processing order and combinations. *) Parameterizes bootgroups, options, and shutdown delay in init scripts and services. *) Update the various init scripts to use lxc-autostart in a similar way. Reported-by: CDR <venefax@gmail.com> Signed-off-by: Dwight Engen <dwight.engen@oracle.com> Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com> Acked-by: Stéphane Graber <stgraber@ubuntu.com>
284 lines
10 KiB
Plaintext
284 lines
10 KiB
Plaintext
<!--
|
|
|
|
lxc-autostart
|
|
|
|
(C) Copyright 2013 Canonical Ltd.
|
|
|
|
Authors:
|
|
Stéphane Graber <stgraber@ubuntu.com>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
-->
|
|
|
|
<!DOCTYPE refentry PUBLIC @docdtd@ [
|
|
<!ENTITY commonoptions SYSTEM "@builddir@/common_options.sgml">
|
|
<!ENTITY seealso SYSTEM "@builddir@/see_also.sgml">
|
|
]>
|
|
|
|
<refentry>
|
|
<docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
|
|
<refmeta>
|
|
<refentrytitle>lxc-autostart</refentrytitle>
|
|
<manvolnum>1</manvolnum>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>lxc-autostart</refname>
|
|
|
|
<refpurpose>
|
|
start/stop/kill auto-started containers
|
|
</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<cmdsynopsis>
|
|
<command>lxc-autostart</command>
|
|
<arg choice="opt">-k</arg>
|
|
<arg choice="opt">-L</arg>
|
|
<arg choice="opt">-r</arg>
|
|
<arg choice="opt">-s</arg>
|
|
<arg choice="opt">-a</arg>
|
|
<arg choice="opt">-A</arg>
|
|
<arg choice="opt">-g <replaceable>groups</replaceable></arg>
|
|
<arg choice="opt">-t <replaceable>timeout</replaceable></arg>
|
|
</cmdsynopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para>
|
|
<command>lxc-autostart</command> processes containers
|
|
with lxc.start.auto set. It lets the user start, shutdown,
|
|
kill, restart containers in the right order, waiting the
|
|
right time. Supports filtering by lxc.group or just run
|
|
against all defined containers. It can also be used by
|
|
external tools in list mode where no action will be performed
|
|
and the list of affected containers (and if relevant, delays)
|
|
will be shown.
|
|
</para>
|
|
|
|
<para>
|
|
The <optional>-r</optional>, <optional>-s</optional>
|
|
and <optional>-k</optional> options specify the action to perform.
|
|
If none is specified, then the containers will be started.
|
|
<optional>-a</optional> and <optional>-g</optional> are used to
|
|
specify which containers will be affected. By default only
|
|
containers without a lxc.group set will be affected.
|
|
<optional>-t TIMEOUT</optional> specifies the maximum amount
|
|
of time to wait for the container to complete the shutdown
|
|
or reboot.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Options</title>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>
|
|
<option>-r,--reboot </option>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Request a reboot of the container.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>
|
|
<option>-s,--shutdown </option>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Request a clean shutdown. If a
|
|
<optional>-t timeout</optional> greater than 0 is
|
|
given and the container has not shut down within
|
|
this period, it will be killed as with the
|
|
<optional>-k kill</optional> option.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>
|
|
<option>-k,--kill </option>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Rather than requesting a clean shutdown of the
|
|
container, explicitly kill all tasks in the container.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>
|
|
<option>-L,--list </option>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Rather than performing the action, just print
|
|
the container name.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>
|
|
<option>-t,--timeout <replaceable>TIMEOUT</replaceable></option>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Wait TIMEOUT seconds before hard-stopping the container.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>
|
|
<option>-g,--group <replaceable>GROUP</replaceable></option>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Comma separated list of groups to select
|
|
(defaults to those without a lxc.group - the NULL group).
|
|
This option may be specified multiple times
|
|
and the arguments concatentated. The NULL or
|
|
empty group may be specified as a leading comma,
|
|
trailing comma, embedded double comma, or empty
|
|
argument where the NULL group should be processed.
|
|
Groups are processed in the order specified on the
|
|
command line. Multiple invocations of the -g option
|
|
may be freely intermixed with the comma separated
|
|
lists and will be combined in specified order.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>
|
|
<option>-a,--all</option>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Ignore lxc.group and select all auto-started containers.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>
|
|
<option>-A,--ignore-auto</option>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Ignore the lxc.start.auto flag. Combined with
|
|
-a, will select all containers on the system.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Autostart and System Boot</title>
|
|
|
|
<para>
|
|
The <command>lxc-autostart</command> command is used as part of the
|
|
LXC system service, when enabled to run on host system at bootup and at
|
|
shutdown. It's used to select which containers to start in what order
|
|
and how much to delay between each startup when the host system boots.
|
|
</para>
|
|
|
|
<para>
|
|
Each container can be part of any number of groups or no group at all.
|
|
Two groups are special. One is the NULL group, i.e. the container does
|
|
not belong to any group. The other group is the "onboot" group.
|
|
</para>
|
|
|
|
<para>
|
|
When the system boots with the LXC service enabled, it will first
|
|
attempt to boot any containers with lxc.start.auto == 1 that is a member
|
|
of the "onboot" group. The startup will be in order of lxc.start.order.
|
|
If an lxc.start.delay has been specified, that delay will be honored
|
|
before attempting to start the next container to give the current
|
|
container time to begin initialization and reduce overloading the host
|
|
system. After starting the members of the "onboot" group, the LXC system
|
|
will proceed to boot containers with lxc.start.auto == 1 which are not
|
|
members of any group (the NULL group) and proceed as with the onboot
|
|
group.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Startup Group Examples</title>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>
|
|
<option>-g "onboot,"</option>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Start the "onboot" group first then the NULL group.
|
|
</para>
|
|
<para>
|
|
This is the equivalent of: <option>-g onboot -g ""</option>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>
|
|
<option>-g "dns,web,,onboot"</option>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Starts the "dns" group first, the "web" group second, then
|
|
the NULL group followed by the "onboot" group.
|
|
</para>
|
|
<para>
|
|
This is the equivalent of: <option>-g dns,web -g ,onboot</option> or <option>-g dns -g web -g "" -g onboot</option>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
&seealso;
|
|
|
|
<refsect1>
|
|
<title>Author</title>
|
|
<para>Stéphane Graber <email>stgraber@ubuntu.com</email></para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:2
|
|
sgml-indent-data:t
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:nil
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
-->
|