diff options
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | TODO | 7 | ||||
-rw-r--r-- | man/journald.conf.xml | 6 | ||||
-rw-r--r-- | man/kernel-command-line.xml | 237 | ||||
-rw-r--r-- | man/systemd-journald.service.xml | 28 | ||||
-rw-r--r-- | man/systemd.xml | 109 | ||||
-rw-r--r-- | src/core/main.c | 5 | ||||
-rw-r--r-- | src/journal/journald.c | 6 |
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 \ @@ -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); |