chiark / gitweb /
man: document all kernel command line options we understand
authorLennart Poettering <lennart@poettering.net>
Thu, 21 Jun 2012 23:35:52 +0000 (01:35 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 21 Jun 2012 23:35:52 +0000 (01:35 +0200)
Makefile.am
TODO
man/journald.conf.xml
man/kernel-command-line.xml [new file with mode: 0644]
man/systemd-journald.service.xml
man/systemd.xml
src/core/main.c
src/journal/journald.c

index 03e28e8c347ca6d89bd1c0c62588eb81dbbcc213..69a842b77c8be120037a09073519f534a9084cf3 100644 (file)
@@ -460,6 +460,7 @@ MANPAGES = \
        man/systemd.exec.5 \
        man/systemd.special.7 \
        man/systemd.journal-fields.7 \
+       man/kernel-command-line.7 \
        man/daemon.7 \
        man/runlevel.8 \
        man/telinit.8 \
diff --git a/TODO b/TODO
index 908dadb974cb2eaf9371100f9ebf0555de07b0d4..4aa03a52504707ce6d778b1668c68ea148055873 100644 (file)
--- a/TODO
+++ b/TODO
@@ -25,6 +25,9 @@ Bugfixes:
 
 Features:
 
+* turn $NOTIFY_SOCKET back into an abstract namespace socket for
+  compatibility with services which chroot()
+
 * exclude processes marked with argv[0][0]=@ from the normal service killing too
 
 * support rd.luks= kernel cmdline params in cryptsetup generator
@@ -33,8 +36,6 @@ Features:
 
 * support rd.driver= kernel cmdline params in modules load
 
-* supprto rd.xxx wherever else makes sense
-
 * systemctl: when stopping a service which has triggres and warning about it actually check the TriggeredBy= deps fields
 
 * journal: hook up with EFI firmware log, new kmsg logic
@@ -141,8 +142,6 @@ Features:
 
 * when a service has the same env var set twice we actually store it twice and return that in systemctl show -p... We should only show the last setting
 
-* add man page documenting all kernel cmdline options, including stuff like fsck.mode=
-
 * support container_ttys=
 
 * journald: make configurable "store-on-var", "store-on-run", "dont-store", "auto"
index 13470b2a43f721de8191d01a443266788929f28c..deb2344fc0e18a743908525e7ea15b6110a895e7 100644 (file)
                                 to syslog is enabled. These settings
                                 may be overridden at boot time with the
                                 kernel command line options
-                                <literal>systemd_journald.forward_to_syslog=</literal>,
-                                <literal>systemd_journald.forward_to_kmsg=</literal>
+                                <literal>systemd.journald.forward_to_syslog=</literal>,
+                                <literal>systemd.journald.forward_to_kmsg=</literal>
                                 and
-                                <literal>systemd_journald.forward_to_console=</literal>. If
+                                <literal>systemd.journald.forward_to_console=</literal>. If
                                 forwarding to the kernel log buffer and
                                 <varname>ImportKernel=</varname> is
                                 enabled at the same time care is taken
diff --git a/man/kernel-command-line.xml b/man/kernel-command-line.xml
new file mode 100644 (file)
index 0000000..0745e0f
--- /dev/null
@@ -0,0 +1,237 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+        "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<!--
+  This file is part of systemd.
+
+  Copyright 2012 Lennart Poettering
+
+  systemd 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.
+
+  systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="kernel-command-line">
+
+        <refentryinfo>
+                <title>kernel-command-line</title>
+                <productname>systemd</productname>
+
+                <authorgroup>
+                        <author>
+                                <contrib>Developer</contrib>
+                                <firstname>Lennart</firstname>
+                                <surname>Poettering</surname>
+                                <email>lennart@poettering.net</email>
+                        </author>
+                </authorgroup>
+        </refentryinfo>
+
+        <refmeta>
+                <refentrytitle>kernel-command-line</refentrytitle>
+                <manvolnum>7</manvolnum>
+        </refmeta>
+
+        <refnamediv>
+                <refname>kernel-command-line</refname>
+                <refpurpose>Kernel Command Line Paramaters</refpurpose>
+        </refnamediv>
+
+        <refsynopsisdiv>
+                <para><filename>/proc/cmdline</filename></para>
+        </refsynopsisdiv>
+
+        <refsect1>
+                <title>Description</title>
+
+                <para>The kernel, the initial RAM disk (initrd) and
+                basic userspace functionality may be configured at boot via
+                kernel command line arguments.</para>
+
+                <para>For command line parameters understood by the
+                kernel please see <ulink
+                url="https://www.kernel.org/doc/Documentation/kernel-parameters.txt"><filename>kernel-parameters.txt</filename></ulink>.</para>
+
+                <para>For command line paramaters understood by the
+                initial RAM disk, please see
+                <citerefentry><refentrytitle>dracut.cmdline</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
+
+        </refsect1>
+
+        <refsect1>
+                <title>Core OS Command Line Arguments</title>
+
+                <variablelist>
+                        <varlistentry>
+                                <term><varname>systemd.unit=</varname></term>
+                                <term><varname>rd.systemd.unit=</varname></term>
+                                <term><varname>systemd.dump_core=</varname></term>
+                                <term><varname>systemd.crash_shell=</varname></term>
+                                <term><varname>systemd.crash_chvt=</varname></term>
+                                <term><varname>systemd.confirm_spawn=</varname></term>
+                                <term><varname>systemd.show_status=</varname></term>
+                                <term><varname>systemd.sysv_console=</varname></term>
+                                <term><varname>systemd.log_target=</varname></term>
+                                <term><varname>systemd.log_level=</varname></term>
+                                <term><varname>systemd.log_color=</varname></term>
+                                <term><varname>systemd.log_location=</varname></term>
+                                <term><varname>systemd.default_standard_output=</varname></term>
+                                <term><varname>systemd.default_standard_error=</varname></term>
+                                <term><varname>systemd.setenv=</varname></term>
+                                <listitem>
+                                        <para>Parameters understood by
+                                        the system and service manager
+                                        to control system behaviour. For details see
+                                        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>quiet</varname></term>
+                                <listitem>
+                                        <para>Parameters understood by
+                                        both the kernel and the system
+                                        and service manager to control
+                                        console log verbosity. For
+                                        details see
+                                        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>emergency</varname></term>
+                                <term><varname>single</varname></term>
+                                <term><varname>s</varname></term>
+                                <term><varname>S</varname></term>
+                                <term><varname>1</varname></term>
+                                <term><varname>2</varname></term>
+                                <term><varname>3</varname></term>
+                                <term><varname>4</varname></term>
+                                <term><varname>5</varname></term>
+                                <listitem>
+                                        <para>Parameters understood by
+                                        the system and service
+                                        manager, as compatibility
+                                        options. For details see
+                                        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>locale.LANG=</varname></term>
+                                <term><varname>locale.LANGUAGE=</varname></term>
+                                <term><varname>locale.LC_CTYPE=</varname></term>
+                                <term><varname>locale.LC_NUMERIC=</varname></term>
+                                <term><varname>locale.LC_TIME=</varname></term>
+                                <term><varname>locale.LC_COLLATE=</varname></term>
+                                <term><varname>locale.LC_MONETARY=</varname></term>
+                                <term><varname>locale.LC_MESSAGES=</varname></term>
+                                <term><varname>locale.LC_PAPER=</varname></term>
+                                <term><varname>locale.LC_NAME=</varname></term>
+                                <term><varname>locale.LC_ADDRESS=</varname></term>
+                                <term><varname>locale.LC_TELEPHONE=</varname></term>
+                                <term><varname>locale.LC_MEASUREMENT=</varname></term>
+                                <term><varname>locale.LC_IDENTIFICATION=</varname></term>
+                                <listitem>
+                                        <para>Parameters understood by
+                                        the system and service manager
+                                        to control locale and language
+                                        settings. For details see
+                                        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>fsck.mode=</varname></term>
+
+                                <listitem>
+                                        <para>Parameters understood by
+                                        the file system checker
+                                        services. For details see
+                                        <citerefentry><refentrytitle>fsck-root.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>quotacheck.mode=</varname></term>
+
+                                <listitem>
+                                        <para>Parameters understood by
+                                        the file quota checker
+                                        service. For details see
+                                        <citerefentry><refentrytitle>quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>systemd.journald.forward_to_syslog=</varname></term>
+                                <term><varname>systemd.journald.forward_to_kmsg=</varname></term>
+                                <term><varname>systemd.journald.forward_to_console=</varname></term>
+
+                                <listitem>
+                                        <para>Parameters understood by
+                                        the journal service. For
+                                        details see
+                                        <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>vconsole.keymap=</varname></term>
+                                <term><varname>vconsole.keymap.toggle=</varname></term>
+                                <term><varname>vconsole.font=</varname></term>
+                                <term><varname>vconsole.font.map=</varname></term>
+                                <term><varname>vconsole.font.unimap=</varname></term>
+
+                                <listitem>
+                                        <para>Parameters understood by
+                                        the virtual console setup logic. For
+                                        details see
+                                        <citerefentry><refentrytitle>systemd-vconsole-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>udev.log-priority=</varname></term>
+                                <term><varname>udev.children-max=</varname></term>
+                                <term><varname>udev.udev.exec-delay=</varname></term>
+                                <term><varname>rd.udev.log-priority=</varname></term>
+                                <term><varname>rd.udev.children-max=</varname></term>
+                                <term><varname>rd.udev.udev.exec-delay=</varname></term>
+
+                                <listitem>
+                                        <para>Parameters understood by
+                                        the device event managing daemon. For
+                                        details see
+                                        <citerefentry><refentrytitle>systemd-udevd</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+                                </listitem>
+                        </varlistentry>
+                </variablelist>
+
+
+        </refsect1>
+
+        <refsect1>
+                  <title>See Also</title>
+                  <para>
+                          <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+                          <citerefentry><refentrytitle>dracut.cmdline</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+                          <citerefentry><refentrytitle>fsck-root.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+                          <citerefentry><refentrytitle>quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+                          <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+                          <citerefentry><refentrytitle>systemd-vconsole-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+                          <citerefentry><refentrytitle>systemd-udevd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+                  </para>
+        </refsect1>
+
+</refentry>
index 8ee0cf4e5d343da1895b797ddef4d6615833578b..5c4f031597348360086441aefb28d6ef9ae85c25 100644 (file)
                 </variablelist>
         </refsect1>
 
+        <refsect1>
+                <title>Kernel Command Line</title>
+
+                <para>A few configuration parameters from
+                <filename>journald.conf</filename> may be overriden on
+                the kernel command line:</para>
+
+                <variablelist>
+                        <varlistentry>
+                                <term><varname>systemd.journald.forward_to_syslog=</varname></term>
+                                <term><varname>systemd.journald.forward_to_kmsg=</varname></term>
+                                <term><varname>systemd.journald.forward_to_console=</varname></term>
+
+                                <listitem><para>Enables/disables
+                                forwarding of collected log messages
+                                to syslog, the kernel log buffer or
+                                the system console.
+                                </para>
+
+                                <para>See
+                                <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                for information about these settings.</para>
+                                </listitem>
+
+                        </varlistentry>
+
+                </variablelist>
+        </refsect1>
 
 
         <refsect1>
index d179273caa2c1f2575f4c695f069156c8d7a5025..bf450d51c86e278e65cf8ed01864232eac82f1c6 100644 (file)
                 <variablelist>
                         <varlistentry>
                                 <term><varname>systemd.unit=</varname></term>
+                                <term><varname>rd.systemd.unit=</varname></term>
 
                                 <listitem><para>Overrides the unit to
                                 activate on boot. Defaults to
                                 <filename>rescue.target</filename> or
                                 <filename>emergency.service</filename>. See
                                 <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
-                                for details about these
-                                units.</para></listitem>
+                                for details about these units. The
+                                option prefixed with
+                                <literal>rd.</literal> is honoured
+                                only in the initial RAM disk (initrd),
+                                while the one that isn't prefixed only
+                                in the main system.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 argument. If <option>true</option>
                                 shows terse service status updates on
                                 the console during bootup. Defaults to
-                                <option>true</option>.</para></listitem>
+                                <option>true</option>, unless
+                                <option>quiet</option> is passed as
+                                kernel command line option in which
+                                case it defaults to
+                                <option>false</option>.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 disk.</para></listitem>
                         </varlistentry>
 
+                        <varlistentry>
+                                <term><varname>quiet</varname></term>
+
+                                <listitem><para>If passed turns off
+                                status output at boot, and disconnects
+                                SysV scripts from the console, much
+                                like
+                                <varname>systemd.show_status=false</varname>
+                                and
+                                <varname>systemd.sysv_console=false</varname>
+                                would. Note that this option is also
+                                read by the kernel itself and disables
+                                kernel log output to the
+                                kernel. Passing this option hence
+                                turns off the usual output from both
+                                the system manager and the
+                                kernel.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>emergency</varname></term>
+
+                                <listitem><para>Boot into emergency
+                                mode. This is equivalent to
+                                <varname>systemd.unit=emergency.target</varname>
+                                and provided for compatibility
+                                reasons and to be easier to type.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>single</varname></term>
+                                <term><varname>s</varname></term>
+                                <term><varname>S</varname></term>
+                                <term><varname>1</varname></term>
+
+                                <listitem><para>Boot into rescue
+                                mode. This is equivalent to
+                                <varname>systemd.unit=rescue.target</varname>
+                                and provided for compatibility reasons
+                                and to be easier to
+                                type.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>2</varname></term>
+                                <term><varname>3</varname></term>
+                                <term><varname>4</varname></term>
+                                <term><varname>5</varname></term>
+
+                                <listitem><para>Boot into the
+                                specified legacy SysV runlevel. This
+                                is equivalent to
+                                <varname>systemd.unit=runlevel2.target</varname>,
+                                <varname>systemd.unit=runlevel3.target</varname>,
+                                <varname>systemd.unit=runlevel4.target</varname>,
+                                resp. <varname>systemd.unit=runlevel5.target</varname>
+                                and provided for compatibility reasons
+                                and to be easier to
+                                type.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>locale.LANG=</varname></term>
+                                <term><varname>locale.LANGUAGE=</varname></term>
+                                <term><varname>locale.LC_CTYPE=</varname></term>
+                                <term><varname>locale.LC_NUMERIC=</varname></term>
+                                <term><varname>locale.LC_TIME=</varname></term>
+                                <term><varname>locale.LC_COLLATE=</varname></term>
+                                <term><varname>locale.LC_MONETARY=</varname></term>
+                                <term><varname>locale.LC_MESSAGES=</varname></term>
+                                <term><varname>locale.LC_PAPER=</varname></term>
+                                <term><varname>locale.LC_NAME=</varname></term>
+                                <term><varname>locale.LC_ADDRESS=</varname></term>
+                                <term><varname>locale.LC_TELEPHONE=</varname></term>
+                                <term><varname>locale.LC_MEASUREMENT=</varname></term>
+                                <term><varname>locale.LC_IDENTIFICATION=</varname></term>
+
+                                <listitem><para>Set the system locale
+                                to use. This overrides the settings in
+                                <filename>/etc/locale.conf</filename>. For
+                                more information see
+                                <citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                and
+                                <citerefentry><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
+                                </para></listitem>
+                        </varlistentry>
                 </variablelist>
+
+                <para>For other kernel command line parameters
+                understood by components of the core OS, please refer
+                to
+                <citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
         </refsect1>
 
         <refsect1>
                         <citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
-                        <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+                        <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+                        <citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>
                 </para>
         </refsect1>
 
index 5cd012e9571bd5d6f7afa3a2217b8687be71a4b8..e6a90e013301a48e4ed9ebf0596ad0e19b4a4a93 100644 (file)
@@ -397,14 +397,15 @@ static int parse_proc_cmdline_word(const char *word) {
                          "systemd.default_standard_output=null|tty|syslog|syslog+console|kmsg|kmsg+console|journal|journal+console\n"
                          "                                         Set default log output for services\n"
                          "systemd.default_standard_error=null|tty|syslog|syslog+console|kmsg|kmsg+console|journal|journal+console\n"
-                         "                                         Set default log error output for services\n");
+                         "                                         Set default log error output for services\n"
+                         "systemd.setenv=ASSIGNMENT                Set an environment variable for all spawned processes\n");
 
         } else if (streq(word, "quiet")) {
                 arg_show_status = false;
 #ifdef HAVE_SYSV_COMPAT
                 arg_sysv_console = false;
 #endif
-        } else {
+        } else if (!in_initrd()) {
                 unsigned i;
 
                 /* SysV compatibility */
index 5c6c4cae9ea9d50141610a09803f315d46964485..98a155bdefa231ddec553e2dd184b86c9854a517 100644 (file)
@@ -2630,19 +2630,19 @@ static int server_parse_proc_cmdline(Server *s) {
                         goto finish;
                 }
 
-                if (startswith(word, "systemd_journald.forward_to_syslog=")) {
+                if (startswith(word, "systemd.journald.forward_to_syslog=")) {
                         r = parse_boolean(word + 35);
                         if (r < 0)
                                 log_warning("Failed to parse forward to syslog switch %s. Ignoring.", word + 35);
                         else
                                 s->forward_to_syslog = r;
-                } else if (startswith(word, "systemd_journald.forward_to_kmsg=")) {
+                } else if (startswith(word, "systemd.journald.forward_to_kmsg=")) {
                         r = parse_boolean(word + 33);
                         if (r < 0)
                                 log_warning("Failed to parse forward to kmsg switch %s. Ignoring.", word + 33);
                         else
                                 s->forward_to_kmsg = r;
-                } else if (startswith(word, "systemd_journald.forward_to_console=")) {
+                } else if (startswith(word, "systemd.journald.forward_to_console=")) {
                         r = parse_boolean(word + 36);
                         if (r < 0)
                                 log_warning("Failed to parse forward to console switch %s. Ignoring.", word + 36);