summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-06-22 01:35:52 +0200
committerLennart Poettering <lennart@poettering.net>2012-06-22 01:35:52 +0200
commitc66e7bc7a19c068ca1c414f2f8bd5dc13c20907f (patch)
tree7acc7a230af7f42370872cb4b269c4ca2d40d7db
parent8b38f3cc3eb73adf9536cb73d0f319e60d42ea0c (diff)
man: document all kernel command line options we understand
-rw-r--r--Makefile.am1
-rw-r--r--TODO7
-rw-r--r--man/journald.conf.xml6
-rw-r--r--man/kernel-command-line.xml237
-rw-r--r--man/systemd-journald.service.xml28
-rw-r--r--man/systemd.xml109
-rw-r--r--src/core/main.c5
-rw-r--r--src/journal/journald.c6
8 files changed, 383 insertions, 16 deletions
diff --git a/Makefile.am b/Makefile.am
index 03e28e8c34..69a842b77c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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 908dadb974..4aa03a5250 100644
--- 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"
diff --git a/man/journald.conf.xml b/man/journald.conf.xml
index 13470b2a43..deb2344fc0 100644
--- a/man/journald.conf.xml
+++ b/man/journald.conf.xml
@@ -212,10 +212,10 @@
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
index 0000000000..0745e0f111
--- /dev/null
+++ b/man/kernel-command-line.xml
@@ -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>
diff --git a/man/systemd-journald.service.xml b/man/systemd-journald.service.xml
index 8ee0cf4e5d..5c4f031597 100644
--- a/man/systemd-journald.service.xml
+++ b/man/systemd-journald.service.xml
@@ -128,6 +128,34 @@
</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>
diff --git a/man/systemd.xml b/man/systemd.xml
index d179273caa..bf450d51c8 100644
--- a/man/systemd.xml
+++ b/man/systemd.xml
@@ -971,6 +971,7 @@
<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
@@ -980,8 +981,12 @@
<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>
@@ -1036,7 +1041,11 @@
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>
@@ -1093,7 +1102,98 @@
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>
@@ -1160,7 +1260,8 @@
<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>
diff --git a/src/core/main.c b/src/core/main.c
index 5cd012e957..e6a90e0133 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -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 */
diff --git a/src/journal/journald.c b/src/journal/journald.c
index 5c6c4cae9e..98a155bdef 100644
--- a/src/journal/journald.c
+++ b/src/journal/journald.c
@@ -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);