chiark / gitweb /
journalctl: Add support for showing messages from a previous boot
[elogind.git] / man / journalctl.xml
index 959ae1efa271c2422829874a9aa4b675bf387396..0e779b952c0813538ce47af48320eccd5339d858 100644 (file)
@@ -49,7 +49,9 @@
 
         <refsynopsisdiv>
                 <cmdsynopsis>
-                        <command>journalctl <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt" rep="repeat">MATCHES</arg></command>
+                        <command>journalctl</command>
+                        <arg choice="opt" rep="repeat">OPTIONS</arg>
+                        <arg choice="opt" rep="repeat">MATCHES</arg>
                 </cmdsynopsis>
         </refsynopsisdiv>
 
                 journal as written by
                 <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
 
-                <para>If called without parameter it will show the full
+                <para>If called without parameters, it will show the full
                 contents of the journal, starting with the oldest
                 entry collected.</para>
 
-                <para>If one or more match arguments are passed the
+                <para>If one or more match arguments are passed, the
                 output is filtered accordingly. A match is in the
                 format <literal>FIELD=VALUE</literal>,
                 e.g. <literal>_SYSTEMD_UNIT=httpd.service</literal>,
@@ -74,7 +76,7 @@
                 entry. See
                 <citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
                 for a list of well-known fields. If multiple matches
-                are specified matching different fields the log
+                are specified matching different fields, the log
                 entries are filtered by both, i.e. the resulting output
                 will show only entries matching all the specified
                 matches of this kind. If two matches apply to the same
                 alternatives, i.e. the resulting output will show
                 entries matching any of the specified matches for the
                 same field. Finally, if the character
-                "<literal>+</literal>" appears as separate word on the
-                command line all matches before and after are combined
+                <literal>+</literal> appears as separate word on the
+                command line, all matches before and after are combined
                 in a disjunction (i.e. logical OR).</para>
 
                 <para>As shortcuts for a few types of field/value
-                matches file paths may be specified. If a file path
+                matches, file paths may be specified. If a file path
                 refers to an executable file, this is equivalent to an
                 <literal>_EXE=</literal> match for the canonicalized
-                binary path. Similar, if a path refers to a device
+                binary path. Similarly, if a path refers to a device
                 node, this is equivalent to a
                 <literal>_KERNEL_DEVICE=</literal> match for the
                 device.</para>
 
                 <para>Output is interleaved from all accessible
                 journal files, whether they are rotated or currently
-                being written, and regardless whether they belong to the
+                being written, and regardless of whether they belong to the
                 system itself or are accessible user journals.</para>
 
                 <para>All users are granted access to their private
-                per-user journals. However, by default only root and
+                per-user journals. However, by default, only root and
                 users who are members of the <literal>adm</literal>
                 group get access to the system journal and the
                 journals of other users.</para>
+
+                <para>The output is paged through
+                <command>less</command> by default, and long lines are
+                "truncated" to screen width. The hidden part can be
+                viewed by using the left-arrow and right-arrow
+                keys. Paging can be disabled, see
+                <option>--no-pager</option> and section Environment
+                below.</para>
+
+                <para>When outputing to a tty, lines are colored
+                according to priority: lines of level ERROR and higher
+                are colored red, lines of level NOTICE and higher are
+                highlighted, and other lines are displayed normally.
+                </para>
         </refsect1>
 
         <refsect1>
 
                 <variablelist>
                         <varlistentry>
-                                <term><option>--help</option></term>
                                 <term><option>-h</option></term>
+                                <term><option>--help</option></term>
 
                                 <listitem><para>Prints a short help
                                 text and exits.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
+                                <term><option>-l</option></term>
                                 <term><option>--full</option></term>
 
                                 <listitem><para>Show all (printable) fields in
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--all</option></term>
                                 <term><option>-a</option></term>
+                                <term><option>--all</option></term>
 
                                 <listitem><para>Show all fields in
                                 full, even if they include unprintable
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--follow</option></term>
                                 <term><option>-f</option></term>
+                                <term><option>--follow</option></term>
 
                                 <listitem><para>Show only the most recent
                                 journal entries, and continuously print
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--lines=</option></term>
+                                <term><option>-e</option></term>
+                                <term><option>--pager-end</option></term>
+
+                                <listitem><para>Immediately jump to
+                                the end of the journal inside the
+                                implied pager tool. This implies
+                                <option>-n1000</option> to guarantee
+                                that the pager will not buffer logs of
+                                unbounded size. This may be overridden
+                                with an explicit <option>-n</option>
+                                with some other numeric value on the
+                                command line. Note that this option is
+                                only supported for the
+                                <citerefentry><refentrytitle>less</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+                                pager.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
                                 <term><option>-n</option></term>
+                                <term><option>--lines=</option></term>
 
                                 <listitem><para>Show the most recent
                                 journal events and limit the number of
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--output=</option></term>
+                                <term><option>-r</option></term>
+                                <term><option>--reverse</option></term>
+
+                                <listitem><para>Reverse output, so the newest
+                                entries are displayed first.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
                                 <term><option>-o</option></term>
+                                <term><option>--output=</option></term>
 
                                 <listitem><para>Controls the
                                 formatting of the journal entries that
                                 <literal>cat</literal>. <literal>short</literal>
                                 is the default and generates an output
                                 that is mostly identical to the
-                                formatting of classic syslog log
+                                formatting of classic syslog
                                 files, showing one line per journal
                                 entry. <literal>short-monotonic</literal>
                                 is very similar but shows monotonic
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--catalog</option></term>
                                 <term><option>-x</option></term>
+                                <term><option>--catalog</option></term>
 
                                 <listitem><para>Augment log lines with
                                 explanation texts from the message
                                 manuals. Note that help texts are not
                                 available for all messages, but only
                                 for selected ones. For more
-                                information on the message catalog
+                                information on the message catalog,
                                 please refer to the <ulink
                                 url="http://www.freedesktop.org/wiki/Software/systemd/catalog">Message
                                 Catalog Developer
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--quiet</option></term>
                                 <term><option>-q</option></term>
+                                <term><option>--quiet</option></term>
 
                                 <listitem><para>Suppresses any warning
                                 message regarding inaccessible system
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--merge</option></term>
                                 <term><option>-m</option></term>
+                                <term><option>--merge</option></term>
 
                                 <listitem><para>Show entries
                                 interleaved from all available
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--this-boot</option></term>
-                                <term><option>-b</option></term>
+                                <term><option>-b <optional><replaceable>ID</replaceable></optional></option></term>
+                                <term><option>--boot=<optional><replaceable>ID</replaceable></optional></option></term>
+
+                                <listitem><para>Show messages from the specified
+                                boot <replaceable>ID</replaceable> or from
+                                current boot if no <replaceable>ID</replaceable>
+                                is given. This will add a match for
+                                <literal>_BOOT_ID=</literal>.</para>
+
+                                <para>The argument is a 128 bit ID given in
+                                short or UUID form and optionally followed by
+                                <literal>:n</literal> which identifies the nth
+                                boot relative to the boot ID given to the left
+                                of <literal>:</literal>. Supplying a negative
+                                value for n will look for a past boot and a
+                                positive value for a future boot. The boot IDs
+                                are searched for in chronological order. If no
+                                number is provided after <literal>:</literal>,
+                                <literal>-1</literal> is assumed. A value of 0
+                                is valid and equivalent to omitting
+                                <literal>:0</literal>.</para>
+
+                                <para>Alternatively, the argument may constist
+                                only of <literal>:n</literal>. In this case, a
+                                positive value will look up the nth boot
+                                starting from the beginning of the jouranl, a
+                                negative value will look up a previous boot
+                                relative to the current boot. <literal>:0</literal>
+                                will look for the current boot ID. Thus,
+                                <literal>:1</literal> is the first boot found in
+                                the journal, <literal>:2</literal> the second
+                                and so on; while <literal>:-1</literal> is the
+                                previous boot, <literal>:-2</literal> the boot
+                                before that and so on. Omitting a value after
+                                <literal>:</literal> will look for the previous
+                                boot.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>-k</option></term>
+                                <term><option>--dmesg</option></term>
 
-                                <listitem><para>Show data only from
-                                current boot. This will add a match
-                                for <literal>_BOOT_ID=</literal> for
-                                the current boot ID of the
-                                kernel.</para></listitem>
+                                <listitem><para>Show only kernel messages. This
+                                implies <option>-b</option> and adds the match
+                                <literal>_TRANSPORT=kernel</literal>.
+                                </para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--unit=</option></term>
                                 <term><option>-u</option></term>
+                                <term><option>--unit=</option></term>
 
-                                <listitem><para>Show data only of the
-                                specified unit. This will add a match
-                                for <literal>_SYSTEMD_UNIT=</literal>
-                                for the specified
-                                unit.</para></listitem>
+                                <listitem><para>Show messages for the
+                                specified systemd unit. This will add
+                                a match for messages from the unit
+                                (<literal>_SYSTEMD_UNIT=</literal>)
+                                and additional matches for messages
+                                from systemd and messages about
+                                coredumps for the specified unit.</para>
+                                <para>This parameter can be specified multiple times.
+                                </para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--user-unit=</option></term>
+
+                                <listitem><para>Show messages for the
+                                specified user session unit. This will
+                                add a match for messages from the unit
+                                (<literal>_SYSTEMD_USER_UNIT=</literal>
+                                and <literal>_UID=</literal>) and
+                                additional matches for messages from
+                                session systemd and messages about
+                                coredumps for the specified unit.</para>
+                                <para>This parameter can be specified multiple times.
+                                </para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <literal>notice</literal> (5),
                                 <literal>info</literal> (6),
                                 <literal>debug</literal> (7). If a
-                                single log level is specified all
+                                single log level is specified, all
                                 messages with this log level or a
                                 lower (hence more important) log level
-                                are shown. If a range is specified all
+                                are shown. If a range is specified, all
                                 messages within the range are shown,
                                 including both the start and the end
                                 value of the range. This will add
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--cursor=</option></term>
                                 <term><option>-c</option></term>
+                                <term><option>--cursor=</option></term>
 
                                 <listitem><para>Start showing entries
                                 from the location in the journal
                                 <listitem><para>Start showing entries
                                 on or newer than the specified date,
                                 or on or older than the specified
-                                date, respectively. Date specifications should be of
-                                the format "2012-10-30 18:17:16". If
-                                the time part is omitted, 00:00:00 is
-                                assumed. If only the seconds component
-                                is omitted, :00 is assumed. If the
-                                date component is omitted, the
-                                current day is assumed. Alternatively
-                                the strings
+                                date, respectively. Date specifications
+                                should be of the format
+                                <literal>2012-10-30 18:17:16</literal>.
+                                If the time part is omitted,
+                                <literal>00:00:00</literal> is assumed.
+                                If only the seconds component is omitted,
+                                <literal>:00</literal> is assumed. If the
+                                date component is omitted, the current
+                                day is assumed. Alternatively the strings
                                 <literal>yesterday</literal>,
                                 <literal>today</literal>,
                                 <literal>tomorrow</literal> are
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--field=</option></term>
                                 <term><option>-F</option></term>
+                                <term><option>--field=</option></term>
 
                                 <listitem><para>Print all possible
                                 data values the specified field can
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--directory=</option></term>
-                                <term><option>-D</option></term>
+                                <term><option>--system</option></term>
+                                <term><option>--user</option></term>
+
+                                <listitem><para>Show messages from
+                                system services and the kernel (with
+                                <option>--system</option>).  Show
+                                messages from service of current user
+                                (with <option>--user</option>).
+                                If neither is specified, show all
+                                messages that the user can see.
+                                </para></listitem>
+                        </varlistentry>
 
-                                <listitem><para>Takes an absolute
-                                directory path as argument. If
-                                specified journalctl will operate on the
-                                specified journal directory instead of
-                                the default runtime and system journal
-                                paths.</para></listitem>
+                        <varlistentry>
+                                <term><option>-D <replaceable>DIR</replaceable></option></term>
+                                <term><option>--directory=<replaceable>DIR</replaceable></option></term>
+
+                                <listitem><para>Takes a directory path
+                                as argument. If specified, journalctl
+                                will operate on the specified journal
+                                directory
+                                <replaceable>DIR</replaceable> instead
+                                of the default runtime and system
+                                journal paths.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--file=<replaceable>GLOB</replaceable></option></term>
+
+                                <listitem><para>Takes a file glob as
+                                argument. If specified, journalctl will
+                                operate on the specified journal files
+                                matching <replaceable>GLOB</replaceable>
+                                instead of the default runtime and
+                                system journal paths. May be specified
+                                multiple times, in which case files will
+                                be suitably interleaved.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--root=<replaceable>ROOT</replaceable></option></term>
+
+                                <listitem><para>Takes a directory path
+                                as argument. If specified, journalctl
+                                will operate on catalog file hierarchy
+                                underneath the specified directory
+                                instead of the root directory
+                                (e.g. <option>--update-catalog</option>
+                                will create
+                                <filename><replaceable>ROOT</replaceable>/var/lib/systemd/catalog/database</filename>).
+                                </para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <term><option>--new-id128</option></term>
 
                                 <listitem><para>Instead of showing
-                                journal contents generate a new 128
+                                journal contents, generate a new 128
                                 bit ID suitable for identifying
                                 messages. This is intended for usage
                                 by developers who need a new
                                 identifier for a new message they
                                 introduce and want to make
-                                recognizable. Will print the new ID in
+                                recognizable. This will print the new ID in
                                 three different formats which can be
                                 copied into source code or
                                 similar.</para></listitem>
                                 <term><option>--header</option></term>
 
                                 <listitem><para>Instead of showing
-                                journal contents show internal header
+                                journal contents, show internal header
                                 information of the journal fields
                                 accessed.</para></listitem>
                         </varlistentry>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--list-catalog</option></term>
+                                <term><option>--list-catalog
+                                <optional><replaceable>ID128...</replaceable></optional>
+                                </option></term>
 
                                 <listitem><para>List the contents of
                                 the message catalog, as table of
                                 message IDs plus their short
-                                description strings.</para></listitem>
+                                description strings.</para>
+
+                                <para>If any
+                                <replaceable>ID128</replaceable>s are
+                                specified, only those entries are shown.
+                                </para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--dump-catalog
+                                <optional><replaceable>ID128...</replaceable></optional>
+                                </option></term>
+
+                                <listitem><para>Show the contents of
+                                the message catalog, with entries
+                                separated by a line consisting of two
+                                dashes and the id (the format is the
+                                same as <filename>.catalog</filename>
+                                files.</para>
+
+                                <para>If any
+                                <replaceable>ID128</replaceable>s are
+                                specified, only those entries are shown.
+                                </para>
+                                </listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <term><option>--setup-keys</option></term>
 
                                 <listitem><para>Instead of showing
-                                journal contents generate a new key
+                                journal contents, generate a new key
                                 pair for Forward Secure Sealing
                                 (FSS). This will generate a sealing
                                 key and a verification key. The
                                 sealing key is stored in the journal
                                 data directory and shall remain on the
                                 host. The verification key should be
-                                stored externally.</para></listitem>
+                                stored externally. Also see the
+                                <option>Seal=</option> option in
+                                <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                for details.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--force</option></term>
+
+                                <listitem><para>When --setup-keys is passed and
+                                Forward Secure Sealing has already been set up,
+                                recreate FSS keys.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <term><option>--interval=</option></term>
 
                                 <listitem><para>Specifies the change
-                                interval for the sealing key, when
+                                interval for the sealing key when
                                 generating an FSS key pair with
                                 <option>--setup-keys</option>. Shorter
                                 intervals increase CPU consumption but
                                 <listitem><para>Check the journal file
                                 for internal consistency. If the
                                 file has been generated with FSS
-                                enabled, and the FSS verification key
+                                enabled and the FSS verification key
                                 has been specified with
-                                <option>--verify-key=</option>
+                                <option>--verify-key=</option>,
                                 authenticity of the journal file is
                                 verified.</para></listitem>
                         </varlistentry>
         <refsect1>
                 <title>Exit status</title>
 
-                <para>On success 0 is returned, a non-zero failure
+                <para>On success, 0 is returned, a non-zero failure
                 code otherwise.</para>
         </refsect1>
 
         <refsect1>
                 <title>Environment</title>
 
-                <variablelist>
+                <variablelist class='environment-variables'>
                         <varlistentry>
                                 <term><varname>$SYSTEMD_PAGER</varname></term>
                                 <listitem><para>Pager to use when
         <refsect1>
                 <title>Examples</title>
 
-                <para>Without arguments all collected logs are shown
+                <para>Without arguments, all collected logs are shown
                 unfiltered:</para>
 
                 <programlisting>journalctl</programlisting>
 
-                <para>With one match specified all entries with a field matching the expression are shown:</para>
+                <para>With one match specified, all entries with a field matching the expression are shown:</para>
 
                 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service</programlisting>
 
-                <para>If two different fields are matched only entries matching both expressions at the same time are shown:</para>
+                <para>If two different fields are matched, only entries matching both expressions at the same time are shown:</para>
 
                 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097</programlisting>
 
-                <para>If two matches refer to the same field all entries matching either expression are shown:</para>
+                <para>If two matches refer to the same field, all entries matching either expression are shown:</para>
 
                 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service</programlisting>
 
-                <para>If the separator "<literal>+</literal>" is used
+                <para>If the separator <literal>+</literal> is used,
                 two expressions may be combined in a logical OR. The
                 following will show all messages from the Avahi
                 service process with the PID 28097 plus all messages
 
                 <programlisting>journalctl /usr/bin/dbus-daemon</programlisting>
 
-                <para>Show all logs of the kernel device node <filename>/dev/sda</filename>:</para>
+                <para>Show all logs of the kernel device node <filename noindex='true'>/dev/sda</filename>:</para>
 
                 <programlisting>journalctl /dev/sda</programlisting>
 
+                <para>Show all kernel logs from last boot:</para>
+
+                <programlisting>journalctl -k -b :</programlisting>
+
         </refsect1>
 
         <refsect1>