[systemd-commits] 5 commits - man/journalctl.xml man/tmpfiles.d.xml src/console src/import src/journal src/libudev src/shared src/tmpfiles
Zbigniew Jędrzejewski-Szmek
zbyszek at kemper.freedesktop.org
Sun Jan 18 16:13:48 PST 2015
man/journalctl.xml | 1763 +++++++++++++++++++-----------------------
man/tmpfiles.d.xml | 1048 +++++++++++-------------
src/console/consoled.h | 2
src/import/import-raw.h | 2
src/journal/journal-file.h | 2
src/libudev/libudev-monitor.c | 5
src/shared/macro.h | 7
src/shared/path-util.c | 5
src/shared/set.h | 2
src/shared/util.h | 8
src/tmpfiles/tmpfiles.c | 5
11 files changed, 1298 insertions(+), 1551 deletions(-)
New commits:
commit a2341f6836da0a217ab0c5f2b82f0c4ea13d429d
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date: Sat Jan 17 23:20:00 2015 -0500
Move DEFINE_TRIVIAL_CLEANUP_FUNC to macro.h
This remove the need for various header files to include the
(relatively heavyweight) util.h.
diff --git a/src/console/consoled.h b/src/console/consoled.h
index f8a3df4..b0db610 100644
--- a/src/console/consoled.h
+++ b/src/console/consoled.h
@@ -26,7 +26,6 @@
#include <libudev.h>
#include <stdlib.h>
#include "grdev.h"
-#include "hashmap.h"
#include "idev.h"
#include "list.h"
#include "macro.h"
@@ -36,7 +35,6 @@
#include "sysview.h"
#include "term.h"
#include "unifont.h"
-#include "util.h"
typedef struct Manager Manager;
typedef struct Session Session;
diff --git a/src/import/import-raw.h b/src/import/import-raw.h
index 5a38cdc..a423ec0 100644
--- a/src/import/import-raw.h
+++ b/src/import/import-raw.h
@@ -20,7 +20,7 @@
***/
#include "sd-event.h"
-#include "util.h"
+#include "macro.h"
typedef struct RawImport RawImport;
diff --git a/src/journal/journal-file.h b/src/journal/journal-file.h
index 6812385..2526e14 100644
--- a/src/journal/journal-file.h
+++ b/src/journal/journal-file.h
@@ -31,7 +31,7 @@
#include "sparse-endian.h"
#include "journal-def.h"
-#include "util.h"
+#include "macro.h"
#include "mmap-cache.h"
#include "hashmap.h"
diff --git a/src/shared/macro.h b/src/shared/macro.h
index daa42c4..96d96f9 100644
--- a/src/shared/macro.h
+++ b/src/shared/macro.h
@@ -446,4 +446,11 @@ do { \
#define GID_INVALID ((gid_t) -1)
#define MODE_INVALID ((mode_t) -1)
+#define DEFINE_TRIVIAL_CLEANUP_FUNC(type, func) \
+ static inline void func##p(type *p) { \
+ if (*p) \
+ func(*p); \
+ } \
+ struct __useless_struct_to_allow_trailing_semicolon__
+
#include "log.h"
diff --git a/src/shared/set.h b/src/shared/set.h
index 4605ecd..2b49e2f 100644
--- a/src/shared/set.h
+++ b/src/shared/set.h
@@ -22,7 +22,7 @@
***/
#include "hashmap.h"
-#include "util.h"
+#include "macro.h"
Set *internal_set_new(const struct hash_ops *hash_ops HASHMAP_DEBUG_PARAMS);
#define set_new(ops) internal_set_new(ops HASHMAP_DEBUG_SRC_ARGS)
diff --git a/src/shared/util.h b/src/shared/util.h
index 5818fee..8a3e95a 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -664,13 +664,6 @@ static inline void freep(void *p) {
free(*(void**) p);
}
-#define DEFINE_TRIVIAL_CLEANUP_FUNC(type, func) \
- static inline void func##p(type *p) { \
- if (*p) \
- func(*p); \
- } \
- struct __useless_struct_to_allow_trailing_semicolon__
-
static inline void closep(int *fd) {
safe_close(*fd);
}
commit 2695c5c44e028d1bc07404baf3357e5a6017fc57
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date: Wed Jan 7 10:28:04 2015 -0500
Add initialization helper for file_handle_union
diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c
index 0d36142..da2b634 100644
--- a/src/libudev/libudev-monitor.c
+++ b/src/libudev/libudev-monitor.c
@@ -109,10 +109,7 @@ static struct udev_monitor *udev_monitor_new(struct udev *udev)
/* we consider udev running when /dev is on devtmpfs */
static bool udev_has_devtmpfs(struct udev *udev) {
- union file_handle_union h = {
- .handle.handle_bytes = MAX_HANDLE_SZ
- };
-
+ union file_handle_union h = FILE_HANDLE_INIT;
_cleanup_fclose_ FILE *f = NULL;
char line[LINE_MAX], *e;
int mount_id;
diff --git a/src/shared/path-util.c b/src/shared/path-util.c
index ee87c74..00d2d44 100644
--- a/src/shared/path-util.c
+++ b/src/shared/path-util.c
@@ -454,10 +454,7 @@ char* path_join(const char *root, const char *path, const char *rest) {
int path_is_mount_point(const char *t, bool allow_symlink) {
- union file_handle_union h = {
- .handle.handle_bytes = MAX_HANDLE_SZ
- };
-
+ union file_handle_union h = FILE_HANDLE_INIT;
int mount_id = -1, mount_id_parent = -1;
_cleanup_free_ char *parent = NULL;
struct stat a, b;
diff --git a/src/shared/util.h b/src/shared/util.h
index 8445371..5818fee 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -993,6 +993,7 @@ union file_handle_union {
struct file_handle handle;
char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ];
};
+#define FILE_HANDLE_INIT { .handle.handle_bytes = MAX_HANDLE_SZ }
int update_reboot_param_file(const char *param);
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index ac9a072..332ddcea 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -230,10 +230,7 @@ static bool unix_socket_alive(const char *fn) {
static int dir_is_mount_point(DIR *d, const char *subdir) {
- union file_handle_union h = {
- .handle.handle_bytes = MAX_HANDLE_SZ
- };
-
+ union file_handle_union h = FILE_HANDLE_INIT;
int mount_id_parent, mount_id;
int r_p, r;
commit 302fbdf29eb0ad4ca1fe8ee18755edad7db11b37
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date: Tue Jan 6 01:58:31 2015 -0500
man: reindent tmpfiles.d(5)
Reindent to 2 spaces, use more markup.
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
index 398b3f7..9fd5913 100644
--- a/man/tmpfiles.d.xml
+++ b/man/tmpfiles.d.xml
@@ -21,575 +21,483 @@
-->
<refentry id="tmpfiles.d">
- <refentryinfo>
- <title>tmpfiles.d</title>
- <productname>systemd</productname>
-
- <authorgroup>
- <author>
- <contrib>Documentation</contrib>
- <firstname>Brandon</firstname>
- <surname>Philips</surname>
- <email>brandon at ifup.org</email>
- </author>
- </authorgroup>
- </refentryinfo>
-
- <refmeta>
- <refentrytitle>tmpfiles.d</refentrytitle>
- <manvolnum>5</manvolnum>
- </refmeta>
-
- <refnamediv>
- <refname>tmpfiles.d</refname>
- <refpurpose>Configuration for creation, deletion and
- cleaning of volatile and temporary files</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <para><filename>/etc/tmpfiles.d/*.conf</filename></para>
- <para><filename>/run/tmpfiles.d/*.conf</filename></para>
- <para><filename>/usr/lib/tmpfiles.d/*.conf</filename></para>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Description</title>
-
- <para><command>systemd-tmpfiles</command> uses the
- configuration files from the above directories to describe the
- creation, cleaning and removal of volatile and
- temporary files and directories which usually reside
- in directories such as <filename>/run</filename>
- or <filename>/tmp</filename>.</para>
-
- <para>Volatile and temporary files and directories are
- those located in <filename>/run</filename> (and its
- alias <filename>/var/run</filename>),
- <filename>/tmp</filename>,
- <filename>/var/tmp</filename>, the API file systems
- such as <filename>/sys</filename> or
- <filename>/proc</filename>, as well as some other
- directories below <filename>/var</filename>.</para>
-
- <para>System daemons frequently require private
- runtime directories below <filename>/run</filename> to
- place communication sockets and similar in. For these,
- consider declaring them in their unit files using
- <varname>RuntimeDirectory=</varname>
- (see <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details),
- if this is feasible.</para>
- </refsect1>
-
- <refsect1>
- <title>Configuration Format</title>
-
- <para>Each configuration file shall be named in the
- style of
- <filename><replaceable>package</replaceable>.conf</filename>
- or
- <filename><replaceable>package</replaceable>-<replaceable>part</replaceable>.conf</filename>.
- The second variant should be used when it is desirable
- to make it easy to override just this part of
- configuration.</para>
-
- <para>Files in <filename>/etc/tmpfiles.d</filename>
- override files with the same name in
- <filename>/usr/lib/tmpfiles.d</filename> and
- <filename>/run/tmpfiles.d</filename>. Files in
- <filename>/run/tmpfiles.d</filename> override files
- with the same name in
- <filename>/usr/lib/tmpfiles.d</filename>. Packages
- should install their configuration files in
- <filename>/usr/lib/tmpfiles.d</filename>. Files in
- <filename>/etc/tmpfiles.d</filename> are reserved for
- the local administrator, who may use this logic to
- override the configuration files installed by vendor
- packages. All configuration files are sorted by their
- filename in lexicographic order, regardless of which
- of the directories they reside in. If multiple files
- specify the same path, the entry in the file with the
- lexicographically earliest name will be applied.
- All other conflicting entries will be logged as
- errors. When two lines are prefix and suffix of each
- other, then the prefix is always processed first, the
- suffix later. Otherwise, the files/directories are
- processed in the order they are listed.</para>
-
- <para>If the administrator wants to disable a
- configuration file supplied by the vendor, the
- recommended way is to place a symlink to
- <filename>/dev/null</filename> in
- <filename>/etc/tmpfiles.d/</filename> bearing the
- same filename.</para>
-
- <para>The configuration format is one line per path
- containing type, path, mode, ownership, age, and argument
- fields:</para>
-
- <programlisting>#Type Path Mode UID GID Age Argument
-d /run/user 0755 root root 10d -
-L /tmp/foobar - - - - /dev/null</programlisting>
-
- <refsect2>
- <title>Type</title>
-
- <para>The type consists of a single letter and
- optionally an exclamation mark.</para>
-
- <para>The following line types are understood:</para>
-
- <variablelist>
- <varlistentry>
- <term><varname>f</varname></term>
- <listitem><para>Create a file if it does not exist yet. If the argument parameter is given, it will be written to the file.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>F</varname></term>
- <listitem><para>Create or truncate a file. If the argument parameter is given, it will be written to the file.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>w</varname></term>
- <listitem><para>Write the argument parameter to a file, if the file exists.
- Lines of this type accept shell-style globs in place of normal path
- names. The argument parameter will be written without a trailing
- newline. C-style backslash escapes are interpreted.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>d</varname></term>
- <listitem><para>Create a directory if it does not exist yet.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>D</varname></term>
- <listitem><para>Create or empty a directory.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>v</varname></term>
- <listitem><para>Create a
- subvolume if the path does not
- exist yet and the file system
- supports this (btrfs). Otherwise
- create a normal directory, in
- the same way as
- <varname>d</varname>.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>p</varname></term>
- <term><varname>p+</varname></term>
- <listitem><para>Create a named
- pipe (FIFO) if it does not
- exist yet. If suffixed with
- <varname>+</varname> and a
- file already exists where the
- pipe is to be created, it will
- be removed and be replaced by
- the pipe.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>L</varname></term>
- <term><varname>L+</varname></term>
- <listitem><para>Create a
- symlink if it does not exist
- yet. If suffixed with
- <varname>+</varname> and a
- file already exists where the
- symlink is to be created, it
- will be removed and be
- replaced by the
- symlink. If the argument is omitted,
- symlinks to files with the same name
- residing in the directory
- <filename>/usr/share/factory/</filename>
- are created.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>c</varname></term>
- <term><varname>c+</varname></term>
- <listitem><para>Create a
- character device node if it
- does not exist yet. If
- suffixed with
- <varname>+</varname> and a
- file already exists where the
- device node is to be created,
- it will be removed and be
- replaced by the device
- node. It is recommended to suffix this
- entry with an exclamation mark to only
- create static device nodes at boot,
- as udev will not manage static device
- nodes that are created at runtime.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>b</varname></term>
- <term><varname>b+</varname></term>
- <listitem><para>Create a block
- device node if it does not
- exist yet. If suffixed with
- <varname>+</varname> and a
- file already exists where the
- device node is to be created,
- it will be removed and be
- replaced by the device
- node. It is recommended to suffix this
- entry with an exclamation mark to only
- create static device nodes at boot,
- as udev will not manage static device
- nodes that are created at runtime.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>C</varname></term>
- <listitem><para>Recursively
- copy a file or directory, if
- the destination files or
- directories do not exist
- yet. Note that this command
- will not descend into
- subdirectories if the
- destination directory already
- exists. Instead, the entire
- copy operation is
- skipped. If the argument is omitted,
- files from the source directory
- <filename>/usr/share/factory/</filename>
- with the same name are copied.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>x</varname></term>
- <listitem><para>Ignore a path
- during cleaning. Use this type
- to exclude paths from clean-up
- as controlled with the Age
- parameter. Note that lines of
- this type do not influence the
- effect of <varname>r</varname>
- or <varname>R</varname> lines.
- Lines of this type accept
- shell-style globs in place of
- normal path names.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>X</varname></term>
- <listitem><para>Ignore a path
- during cleaning. Use this type
- to exclude paths from clean-up
- as controlled with the Age
- parameter. Unlike
- <varname>x</varname>, this
- parameter will not exclude the
- content if path is a
- directory, but only directory
- itself. Note that lines of
- this type do not influence the
- effect of <varname>r</varname>
- or <varname>R</varname> lines.
- Lines of this type accept
- shell-style globs in place of
- normal path names.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>r</varname></term>
- <listitem><para>Remove a file
- or directory if it exists.
- This may not be used to remove
- non-empty directories, use
- <varname>R</varname> for that.
- Lines of this type accept
- shell-style globs in place of
- normal path
- names.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>R</varname></term>
- <listitem><para>Recursively
- remove a path and all its
- subdirectories (if it is a
- directory). Lines of this type
- accept shell-style globs in
- place of normal path
- names.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>z</varname></term>
- <listitem><para>Adjust the
- access mode, group and user,
- and restore the SELinux security
- context of a file or directory,
- if it exists. Lines of this
- type accept shell-style globs
- in place of normal path names.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>Z</varname></term>
- <listitem><para>Recursively
- set the access mode, group and
- user, and restore the SELinux
- security context of a file or
- directory if it exists, as
- well as of its subdirectories
- and the files contained
- therein (if applicable). Lines
- of this type accept
- shell-style globs in place of
- normal path
- names.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>t</varname></term>
- <listitem><para>Set extended
- attributes on item. It may be
- used in conjunction with other
- types (only <varname>d</varname>,
- <varname>D</varname>, <varname>f</varname>,
- <varname>F</varname>, <varname>L</varname>,
- <varname>p</varname>, <varname>c</varname>,
- <varname>b</varname>, makes sense).
- If used as a standalone line, then
- <command>systemd-tmpfiles</command>
- will try to set extended
- attributes on specified path.
- This can be especially used to set
- SMACK labels.
- </para></listitem>
- </varlistentry>
- </variablelist>
-
- <para>If the exclamation mark is used, this
- line is only safe of execute during boot, and
- can break a running system. Lines without the
- exclamation mark are presumed to be safe to
- execute at any time, e.g. on package upgrades.
- <command>systemd-tmpfiles</command> will
- execute line with an exclamation mark only if
- option <option>--boot</option> is given.
- </para>
-
- <para>For example:
- <programlisting># Make sure these are created by default so that nobody else can
-d /tmp/.X11-unix 1777 root root 10d
-
-# Unlink the X11 lock files
-r! /tmp/.X[0-9]*-lock</programlisting>
- The second line in contrast to the first one
- would break a running system, and will only be
- executed with <option>--boot</option>.</para>
- </refsect2>
-
- <refsect2>
- <title>Path</title>
-
- <para>The file system path specification supports simple specifier
- expansion. The following expansions are
- understood:</para>
-
- <table>
- <title>Specifiers available</title>
- <tgroup cols='3' align='left' colsep='1' rowsep='1'>
- <colspec colname="spec" />
- <colspec colname="mean" />
- <colspec colname="detail" />
- <thead>
- <row>
- <entry>Specifier</entry>
- <entry>Meaning</entry>
- <entry>Details</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><literal>%m</literal></entry>
- <entry>Machine ID</entry>
- <entry>The machine ID of the running system, formatted as string. See <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information.</entry>
- </row>
- <row>
- <entry><literal>%b</literal></entry>
- <entry>Boot ID</entry>
- <entry>The boot ID of the running system, formatted as string. See <citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry> for more information.</entry>
- </row>
- <row>
- <entry><literal>%H</literal></entry>
- <entry>Host name</entry>
- <entry>The hostname of the running system.</entry>
- </row>
- <row>
- <entry><literal>%v</literal></entry>
- <entry>Kernel release</entry>
- <entry>Identical to <command>uname -r</command> output.</entry>
- </row>
- <row>
- <entry><literal>%%</literal></entry>
- <entry>Escaped %</entry>
- <entry>Single percent sign.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </refsect2>
-
- <refsect2>
- <title>Mode</title>
-
- <para>The file access mode to use when
- creating this file or directory. If omitted or
- when set to -, the default is used: 0755 for
- directories, 0644 for all other file objects.
- For <varname>z</varname>, <varname>Z</varname>
- lines, if omitted or when set to
- <literal>-</literal>, the file access mode
- will not be modified. This parameter is
- ignored for <varname>x</varname>,
- <varname>r</varname>, <varname>R</varname>,
- <varname>L</varname>, <varname>t</varname> lines.</para>
-
- <para>Optionally, if prefixed with
- <literal>~</literal>, the access mode is masked
- based on the already set access bits for
- existing file or directories: if the existing
- file has all executable bits unset, all
- executable bits are removed from the new
- access mode, too. Similarly, if all read bits
- are removed from the old access mode, they will
- be removed from the new access mode too, and
- if all write bits are removed, they will be
- removed from the new access mode too. In
- addition, the sticky/SUID/SGID bit is removed unless
- applied to a directory. This
- functionality is particularly useful in
- conjunction with <varname>Z</varname>.</para>
- </refsect2>
-
- <refsect2>
- <title>UID, GID</title>
-
- <para>The user and group to use for this file
- or directory. This may either be a numeric
- user/group ID or a user or group name. If
- omitted or when set to <literal>-</literal>,
- the default 0 (root) is used. For
- <varname>z</varname>, <varname>Z</varname>
- lines, when omitted or when set to -, the file
- ownership will not be modified. These
- parameters are ignored for
- <varname>x</varname>, <varname>r</varname>,
- <varname>R</varname>, <varname>L</varname>,
- <varname>t</varname> lines.</para>
- </refsect2>
-
- <refsect2>
- <title>Age</title>
- <para>The date field, when set, is used to
- decide what files to delete when cleaning. If
- a file or directory is older than the current
- time minus the age field, it is deleted. The
- field format is a series of integers each
- followed by one of the following
- postfixes for the respective time units:</para>
-
- <variablelist>
- <varlistentry>
- <term><varname>s</varname></term>
- <term><varname>min</varname></term>
- <term><varname>h</varname></term>
- <term><varname>d</varname></term>
- <term><varname>w</varname></term>
- <term><varname>ms</varname></term>
- <term><varname>m</varname></term>
- <term><varname>us</varname></term></varlistentry>
- </variablelist>
-
- <para>If multiple integers and units are specified, the time
- values are summed up. If an integer is given without a unit,
- s is assumed.
- </para>
-
- <para>When the age is set to zero, the files are cleaned
- unconditionally.</para>
-
- <para>The age field only applies to lines
- starting with <varname>d</varname>,
- <varname>D</varname>, and
- <varname>x</varname>. If omitted or set to
- <literal>-</literal>, no automatic clean-up is
- done.</para>
-
- <para>If the age field starts with a tilde
- character <literal>~</literal>, the clean-up
- is only applied to files and directories one
- level inside the directory specified, but not
- the files and directories immediately inside
- it.</para>
- </refsect2>
-
- <refsect2>
- <title>Argument</title>
-
- <para>For <varname>L</varname> lines
- determines the destination path of the
- symlink. For <varname>c</varname>,
- <varname>b</varname> determines the
- major/minor of the device node, with major and
- minor formatted as integers, separated by
- <literal>:</literal>, e.g.
- <literal>1:3</literal>. For
- <varname>f</varname>, <varname>F</varname>,
- and <varname>w</varname> may be used to
- specify a short string that is written to the
- file, suffixed by a newline. For
- <varname>C</varname>, specifies the source file
- or directory. For <varname>t</varname> determines
- extended attributes to be set. Ignored for all other lines.</para>
- </refsect2>
-
- </refsect1>
-
- <refsect1>
- <title>Example</title>
- <example>
- <title>/etc/tmpfiles.d/screen.conf example</title>
- <para><command>screen</command> needs two directories created at boot with specific modes and ownership.</para>
-
- <programlisting>d /run/screens 1777 root root 10d
-d /run/uscreens 0755 root root 10d12h
-t /run/screen - - - - user.name="John Smith" security.SMACK64=screen</programlisting>
- </example>
- <example>
- <title>/etc/tmpfiles.d/abrt.conf example</title>
- <para><command>abrt</command> needs a directory created at boot with specific mode and ownership and its content should be preserved.</para>
-
- <programlisting>d /var/tmp/abrt 0755 abrt abrt
-x /var/tmp/abrt/*</programlisting>
- </example>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- </para>
- </refsect1>
+ <refentryinfo>
+ <title>tmpfiles.d</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Documentation</contrib>
+ <firstname>Brandon</firstname>
+ <surname>Philips</surname>
+ <email>brandon at ifup.org</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>tmpfiles.d</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>tmpfiles.d</refname>
+ <refpurpose>Configuration for creation, deletion and cleaning of
+ volatile and temporary files</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <para><filename>/etc/tmpfiles.d/*.conf</filename></para>
+ <para><filename>/run/tmpfiles.d/*.conf</filename></para>
+ <para><filename>/usr/lib/tmpfiles.d/*.conf</filename></para>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><command>systemd-tmpfiles</command> uses the configuration
+ files from the above directories to describe the creation,
+ cleaning and removal of volatile and temporary files and
+ directories which usually reside in directories such as
+ <filename>/run</filename> or <filename>/tmp</filename>.</para>
+
+ <para>Volatile and temporary files and directories are those
+ located in <filename>/run</filename> (and its alias
+ <filename>/var/run</filename>), <filename>/tmp</filename>,
+ <filename>/var/tmp</filename>, the API file systems such as
+ <filename>/sys</filename> or <filename>/proc</filename>, as well
+ as some other directories below <filename>/var</filename>.</para>
+
+ <para>System daemons frequently require private runtime
+ directories below <filename>/run</filename> to place communication
+ sockets and similar in. For these, consider declaring them in
+ their unit files using <varname>RuntimeDirectory=</varname> (see
+ <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for details), if this is feasible.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Configuration Format</title>
+
+ <para>Each configuration file shall be named in the style of
+ <filename><replaceable>package</replaceable>.conf</filename> or
+ <filename><replaceable>package</replaceable>-<replaceable>part</replaceable>.conf</filename>.
+ The second variant should be used when it is desirable to make it
+ easy to override just this part of configuration.</para>
+
+ <para>Files in <filename>/etc/tmpfiles.d</filename> override files
+ with the same name in <filename>/usr/lib/tmpfiles.d</filename> and
+ <filename>/run/tmpfiles.d</filename>. Files in
+ <filename>/run/tmpfiles.d</filename> override files with the same
+ name in <filename>/usr/lib/tmpfiles.d</filename>. Packages should
+ install their configuration files in
+ <filename>/usr/lib/tmpfiles.d</filename>. Files in
+ <filename>/etc/tmpfiles.d</filename> are reserved for the local
+ administrator, who may use this logic to override the
+ configuration files installed by vendor packages. All
+ configuration files are sorted by their filename in lexicographic
+ order, regardless of which of the directories they reside in. If
+ multiple files specify the same path, the entry in the file with
+ the lexicographically earliest name will be applied. All other
+ conflicting entries will be logged as errors. When two lines are
+ prefix and suffix of each other, then the prefix is always
+ processed first, the suffix later. Otherwise, the
+ files/directories are processed in the order they are
+ listed.</para>
+
+ <para>If the administrator wants to disable a configuration file
+ supplied by the vendor, the recommended way is to place a symlink
+ to <filename>/dev/null</filename> in
+ <filename>/etc/tmpfiles.d/</filename> bearing the same filename.
+ </para>
+
+ <para>The configuration format is one line per path containing
+ type, path, mode, ownership, age, and argument fields:</para>
+
+ <programlisting>#Type Path Mode UID GID Age Argument
+ d /run/user 0755 root root 10d -
+ L /tmp/foobar - - - - /dev/null</programlisting>
+
+ <refsect2>
+ <title>Type</title>
+
+ <para>The type consists of a single letter and optionally an
+ exclamation mark.</para>
+
+ <para>The following line types are understood:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>f</varname></term>
+ <listitem><para>Create a file if it does not exist yet. If
+ the argument parameter is given, it will be written to the
+ file.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>F</varname></term>
+ <listitem><para>Create or truncate a file. If the argument
+ parameter is given, it will be written to the file.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>w</varname></term>
+ <listitem><para>Write the argument parameter to a file, if
+ the file exists. Lines of this type accept shell-style
+ globs in place of normal path names. The argument parameter
+ will be written without a trailing newline. C-style
+ backslash escapes are interpreted.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>d</varname></term>
+ <listitem><para>Create a directory if it does not exist yet.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>D</varname></term>
+ <listitem><para>Create or empty a directory.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>v</varname></term>
+ <listitem><para>Create a subvolume if the path does not
+ exist yet and the file system supports this
+ (btrfs). Otherwise create a normal directory, in the same
+ way as <varname>d</varname>.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>p</varname></term>
+ <term><varname>p+</varname></term>
+ <listitem><para>Create a named pipe (FIFO) if it does not
+ exist yet. If suffixed with <varname>+</varname> and a file
+ already exists where the pipe is to be created, it will be
+ removed and be replaced by the pipe.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>L</varname></term>
+ <term><varname>L+</varname></term>
+ <listitem><para>Create a symlink if it does not exist
+ yet. If suffixed with <varname>+</varname> and a file
+ already exists where the symlink is to be created, it will
+ be removed and be replaced by the symlink. If the argument
+ is omitted, symlinks to files with the same name residing in
+ the directory <filename>/usr/share/factory/</filename> are
+ created.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>c</varname></term>
+ <term><varname>c+</varname></term>
+ <listitem><para>Create a character device node if it does
+ not exist yet. If suffixed with <varname>+</varname> and a
+ file already exists where the device node is to be created,
+ it will be removed and be replaced by the device node. It is
+ recommended to suffix this entry with an exclamation mark to
+ only create static device nodes at boot, as udev will not
+ manage static device nodes that are created at runtime.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>b</varname></term>
+ <term><varname>b+</varname></term>
+ <listitem><para>Create a block device node if it does not
+ exist yet. If suffixed with <varname>+</varname> and a file
+ already exists where the device node is to be created, it
+ will be removed and be replaced by the device node. It is
+ recommended to suffix this entry with an exclamation mark to
+ only create static device nodes at boot, as udev will not
+ manage static device nodes that are created at runtime.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>C</varname></term>
+ <listitem><para>Recursively copy a file or directory, if the
+ destination files or directories do not exist yet. Note that
+ this command will not descend into subdirectories if the
+ destination directory already exists. Instead, the entire
+ copy operation is skipped. If the argument is omitted, files
+ from the source directory
+ <filename>/usr/share/factory/</filename> with the same name
+ are copied.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>x</varname></term>
+ <listitem><para>Ignore a path during cleaning. Use this type
+ to exclude paths from clean-up as controlled with the Age
+ parameter. Note that lines of this type do not influence the
+ effect of <varname>r</varname> or <varname>R</varname>
+ lines. Lines of this type accept shell-style globs in place
+ of normal path names. </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>X</varname></term>
+ <listitem><para>Ignore a path during cleaning. Use this type
+ to exclude paths from clean-up as controlled with the Age
+ parameter. Unlike <varname>x</varname>, this parameter will
+ not exclude the content if path is a directory, but only
+ directory itself. Note that lines of this type do not
+ influence the effect of <varname>r</varname> or
+ <varname>R</varname> lines. Lines of this type accept
+ shell-style globs in place of normal path names.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>r</varname></term>
+ <listitem><para>Remove a file or directory if it exists.
+ This may not be used to remove non-empty directories, use
+ <varname>R</varname> for that. Lines of this type accept
+ shell-style globs in place of normal path
+ names.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>R</varname></term>
+ <listitem><para>Recursively remove a path and all its
+ subdirectories (if it is a directory). Lines of this type
+ accept shell-style globs in place of normal path
+ names.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>z</varname></term>
+ <listitem><para>Adjust the access mode, group and user, and
+ restore the SELinux security context of a file or directory,
+ if it exists. Lines of this type accept shell-style globs in
+ place of normal path names. </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>Z</varname></term>
+ <listitem><para>Recursively set the access mode, group and
+ user, and restore the SELinux security context of a file or
+ directory if it exists, as well as of its subdirectories and
+ the files contained therein (if applicable). Lines of this
+ type accept shell-style globs in place of normal path names.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>t</varname></term>
+ <listitem><para>Set extended attributes on item. It may be
+ used in conjunction with other types (only
+ <varname>d</varname>, <varname>D</varname>,
+ <varname>f</varname>, <varname>F</varname>,
+ <varname>L</varname>, <varname>p</varname>,
+ <varname>c</varname>, <varname>b</varname>, makes sense).
+ If used as a standalone line, then
+ <command>systemd-tmpfiles</command> will try to set extended
+ attributes on specified path. This can be especially used
+ to set SMACK labels. </para></listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>If the exclamation mark is used, this line is only safe of
+ execute during boot, and can break a running system. Lines
+ without the exclamation mark are presumed to be safe to execute
+ at any time, e.g. on package upgrades.
+ <command>systemd-tmpfiles</command> will execute line with an
+ exclamation mark only if option <option>--boot</option> is
+ given.</para>
+
+ <para>For example:
+ <programlisting># Make sure these are created by default so that nobody else can
+ d /tmp/.X11-unix 1777 root root 10d
+
+ # Unlink the X11 lock files
+ r! /tmp/.X[0-9]*-lock</programlisting>
+ The second line in contrast to the first one would break a
+ running system, and will only be executed with
+ <option>--boot</option>.</para>
+ </refsect2>
+
+ <refsect2>
+ <title>Path</title>
+
+ <para>The file system path specification supports simple
+ specifier expansion. The following expansions are
+ understood:</para>
+
+ <table>
+ <title>Specifiers available</title>
+ <tgroup cols='3' align='left' colsep='1' rowsep='1'>
+ <colspec colname="spec" />
+ <colspec colname="mean" />
+ <colspec colname="detail" />
+ <thead>
+ <row>
+ <entry>Specifier</entry>
+ <entry>Meaning</entry>
+ <entry>Details</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>%m</literal></entry>
+ <entry>Machine ID</entry>
+ <entry>The machine ID of the running system, formatted as string. See <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information.</entry>
+ </row>
+ <row>
+ <entry><literal>%b</literal></entry>
+ <entry>Boot ID</entry>
+ <entry>The boot ID of the running system, formatted as string. See <citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry> for more information.</entry>
+ </row>
+ <row>
+ <entry><literal>%H</literal></entry>
+ <entry>Host name</entry>
+ <entry>The hostname of the running system.</entry>
+ </row>
+ <row>
+ <entry><literal>%v</literal></entry>
+ <entry>Kernel release</entry>
+ <entry>Identical to <command>uname -r</command> output.</entry>
+ </row>
+ <row>
+ <entry><literal>%%</literal></entry>
+ <entry>Escaped %</entry>
+ <entry>Single percent sign.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </refsect2>
+
+ <refsect2>
+ <title>Mode</title>
+
+ <para>The file access mode to use when creating this file or
+ directory. If omitted or when set to <literal>-</literal>, the
+ default is used: 0755 for directories, 0644 for all other file
+ objects. For <varname>z</varname>, <varname>Z</varname> lines,
+ if omitted or when set to <literal>-</literal>, the file access
+ mode will not be modified. This parameter is ignored for
+ <varname>x</varname>, <varname>r</varname>,
+ <varname>R</varname>, <varname>L</varname>, <varname>t</varname>
+ lines.</para>
+
+ <para>Optionally, if prefixed with <literal>~</literal>, the
+ access mode is masked based on the already set access bits for
+ existing file or directories: if the existing file has all
+ executable bits unset, all executable bits are removed from the
+ new access mode, too. Similarly, if all read bits are removed
+ from the old access mode, they will be removed from the new
+ access mode too, and if all write bits are removed, they will be
+ removed from the new access mode too. In addition, the
+ sticky/SUID/SGID bit is removed unless applied to a
+ directory. This functionality is particularly useful in
+ conjunction with <varname>Z</varname>.</para>
+ </refsect2>
+
+ <refsect2>
+ <title>UID, GID</title>
+
+ <para>The user and group to use for this file or directory. This
+ may either be a numeric user/group ID or a user or group
+ name. If omitted or when set to <literal>-</literal>, the
+ default 0 (root) is used. For <varname>z</varname>,
+ <varname>Z</varname> lines, when omitted or when set to -, the
+ file ownership will not be modified. These parameters are
+ ignored for <varname>x</varname>, <varname>r</varname>,
+ <varname>R</varname>, <varname>L</varname>, <varname>t</varname>
+ lines.</para>
+ </refsect2>
+
+ <refsect2>
+ <title>Age</title>
+ <para>The date field, when set, is used to decide what files to
+ delete when cleaning. If a file or directory is older than the
+ current time minus the age field, it is deleted. The field
+ format is a series of integers each followed by one of the
+ following postfixes for the respective time units:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>s</varname></term>
+ <term><varname>min</varname></term>
+ <term><varname>h</varname></term>
+ <term><varname>d</varname></term>
+ <term><varname>w</varname></term>
+ <term><varname>ms</varname></term>
+ <term><varname>m</varname></term>
+ <term><varname>us</varname></term></varlistentry>
+ </variablelist>
+
+ <para>If multiple integers and units are specified, the time
+ values are summed up. If an integer is given without a unit,
+ <varname>s</varname> is assumed.
+ </para>
+
+ <para>When the age is set to zero, the files are cleaned
+ unconditionally.</para>
+
+ <para>The age field only applies to lines
+ starting with <varname>d</varname>,
+ <varname>D</varname>, and
+ <varname>x</varname>. If omitted or set to
+ <literal>-</literal>, no automatic clean-up is
+ done.</para>
+
+ <para>If the age field starts with a tilde character
+ <literal>~</literal>, the clean-up is only applied to files and
+ directories one level inside the directory specified, but not
+ the files and directories immediately inside it.</para>
+ </refsect2>
+
+ <refsect2>
+ <title>Argument</title>
+
+ <para>For <varname>L</varname> lines determines the destination
+ path of the symlink. For <varname>c</varname>,
+ <varname>b</varname> determines the major/minor of the device
+ node, with major and minor formatted as integers, separated by
+ <literal>:</literal>, e.g. <literal>1:3</literal>. For
+ <varname>f</varname>, <varname>F</varname>, and
+ <varname>w</varname> may be used to specify a short string that
+ is written to the file, suffixed by a newline. For
+ <varname>C</varname>, specifies the source file or
+ directory. For <varname>t</varname> determines extended
+ attributes to be set. Ignored for all other lines.</para>
+ </refsect2>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Example</title>
+ <example>
+ <title>/etc/tmpfiles.d/screen.conf example</title>
+ <para><command>screen</command> needs two directories created at
+ boot with specific modes and ownership.</para>
+
+ <programlisting>d /run/screens 1777 root root 10d
+ d /run/uscreens 0755 root root 10d12h
+ t /run/screen - - - - user.name="John Smith" security.SMACK64=screen</programlisting>
+ </example>
+ <example>
+ <title>/etc/tmpfiles.d/abrt.conf example</title>
+ <para><command>abrt</command> needs a directory created at boot with specific mode and ownership and its content should be preserved.</para>
+
+ <programlisting>d /var/tmp/abrt 0755 abrt abrt
+ x /var/tmp/abrt/*</programlisting>
+ </example>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ </para>
+ </refsect1>
</refentry>
commit 42d8fafc4bb2f890688e25fe886f88b54ce2c1e3
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date: Tue Jan 6 01:15:59 2015 -0500
man: mention "wheel" and "adm" in journalctl(1)
https://bugs.freedesktop.org/show_bug.cgi?id=70866
diff --git a/man/journalctl.xml b/man/journalctl.xml
index 7b9f9b8..770cf9b 100644
--- a/man/journalctl.xml
+++ b/man/journalctl.xml
@@ -110,9 +110,14 @@
<para>All users are granted access to their private per-user
journals. However, by default, only root and users who are
- members of the <literal>systemd-journal</literal> group get
- access to the system journal and the journals of other
- users.</para>
+ members of a few special groups are granted access to the system
+ journal and the journals of other users. Members of the the
+ <literal>systemd-journal</literal>, <literal>adm</literal>, and
+ <literal>wheel</literal> groups can read all journal files. Note
+ that the two latter groups traditionally have additional
+ privileges specified by the distribution. Members of the
+ <literal>wheel</literal> group can often perform administrative
+ tasks.</para>
<para>The output is paged through <command>less</command> by
default, and long lines are "truncated" to screen width. The
commit 49fba678a0e2c30df0d2ccefab731beb3955a473
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date: Tue Jan 6 01:09:55 2015 -0500
man: reindent journalctl(1)
Reindent with two spaces, use non-breaking spaces, add <literal> tags.
diff --git a/man/journalctl.xml b/man/journalctl.xml
index 0703bf9..7b9f9b8 100644
--- a/man/journalctl.xml
+++ b/man/journalctl.xml
@@ -21,978 +21,822 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="journalctl"
- xmlns:xi="http://www.w3.org/2001/XInclude">
-
- <refentryinfo>
- <title>journalctl</title>
- <productname>systemd</productname>
-
- <authorgroup>
- <author>
- <contrib>Developer</contrib>
- <firstname>Lennart</firstname>
- <surname>Poettering</surname>
- <email>lennart at poettering.net</email>
- </author>
- </authorgroup>
- </refentryinfo>
-
- <refmeta>
- <refentrytitle>journalctl</refentrytitle>
- <manvolnum>1</manvolnum>
- </refmeta>
-
- <refnamediv>
- <refname>journalctl</refname>
- <refpurpose>Query the systemd journal</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <cmdsynopsis>
- <command>journalctl</command>
- <arg choice="opt" rep="repeat">OPTIONS</arg>
- <arg choice="opt" rep="repeat">MATCHES</arg>
- </cmdsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Description</title>
-
- <para><command>journalctl</command> may be used to
- query the contents of the
- <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- journal as written by
- <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
-
- <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
- output is filtered accordingly. A match is in the
- format <literal>FIELD=VALUE</literal>,
- e.g. <literal>_SYSTEMD_UNIT=httpd.service</literal>,
- referring to the components of a structured journal
- 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
- 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
- field, then they are automatically matched as
- alternatives, i.e. the resulting output will show
- entries matching any of the specified matches for the
- same field. Finally, the character
- <literal>+</literal> may appears as a separate word
- between other terms on the command line. This causes
- all matches before and after to be 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
- refers to an executable file, this is equivalent to an
- <literal>_EXE=</literal> match for the canonicalized
- 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>Additional constraints may be added using options
- <option>--boot</option>, <option>--unit=</option>,
- etc, to further limit what entries will be shown
- (logical AND).</para>
-
- <para>Output is interleaved from all accessible
- journal files, whether they are rotated or currently
- being written, and regardless of whether they belong to the
- system itself or are accessible user journals.</para>
-
- <para>The set of journal files which will be used
- can be modified using the <option>--user</option>,
- <option>--system</option>, <option>--directory</option>,
- and <option>--file</option> options, see below.</para>
-
- <para>All users are granted access to their private
- per-user journals. However, by default, only root and
- users who are members of the <literal>systemd-journal</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 the
- <option>--no-pager</option> option and the "Environment"
- section below.</para>
-
- <para>When outputting 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; other lines are displayed normally.
+ <refentry id="journalctl"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>journalctl</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart at poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>journalctl</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>journalctl</refname>
+ <refpurpose>Query the systemd journal</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>journalctl</command>
+ <arg choice="opt" rep="repeat">OPTIONS</arg>
+ <arg choice="opt" rep="repeat">MATCHES</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><command>journalctl</command> may be used to query the
+ contents of the
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ journal as written by
+ <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+
+ <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 output is
+ filtered accordingly. A match is in the format
+ <literal>FIELD=VALUE</literal>,
+ e.g. <literal>_SYSTEMD_UNIT=httpd.service</literal>, referring
+ to the components of a structured journal 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 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 field, then they are automatically
+ matched as alternatives, i.e. the resulting output will show
+ entries matching any of the specified matches for the same
+ field. Finally, the character <literal>+</literal> may appears
+ as a separate word between other terms on the command line. This
+ causes all matches before and after to be 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 refers to an executable
+ file, this is equivalent to an <literal>_EXE=</literal> match
+ for the canonicalized 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>Additional constraints may be added using options
+ <option>--boot</option>, <option>--unit=</option>, etc, to
+ further limit what entries will be shown (logical AND).</para>
+
+ <para>Output is interleaved from all accessible journal files,
+ whether they are rotated or currently being written, and
+ regardless of whether they belong to the system itself or are
+ accessible user journals.</para>
+
+ <para>The set of journal files which will be used can be
+ modified using the <option>--user</option>,
+ <option>--system</option>, <option>--directory</option>, and
+ <option>--file</option> options, see below.</para>
+
+ <para>All users are granted access to their private per-user
+ journals. However, by default, only root and users who are
+ members of the <literal>systemd-journal</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 the
+ <option>--no-pager</option> option and the "Environment" section
+ below.</para>
+
+ <para>When outputting 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; other lines are
+ displayed normally.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>The following options are understood:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>--no-full</option></term>
+ <term><option>--full</option></term>
+ <term><option>-l</option></term>
+
+ <listitem><para>Ellipsize fields when they do not fit in
+ available columns. The default is to show full fields,
+ allowing them to wrap or be truncated by the pager, if one
+ is used.</para>
+
+ <para>The old options
+ <option>-l</option>/<option>--full</option> are not useful
+ anymore, except to undo <option>--no-full</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-a</option></term>
+ <term><option>--all</option></term>
+
+ <listitem><para>Show all fields in full, even if they
+ include unprintable characters or are very
+ long.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-f</option></term>
+ <term><option>--follow</option></term>
+
+ <listitem><para>Show only the most recent journal entries,
+ and continuously print new entries as they are appended to
+ the journal.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <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 while <option>-nall</option> will disable this cap.
+ Note that this option is only supported for the
+ <citerefentry project='man-pages'><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 events shown. If
+ <option>--follow</option> is used, this option is
+ implied. The argument is a positive integer or
+ <literal>all</literal> to disable line limiting. The default
+ value is 10 if no argument is given.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--no-tail</option></term>
+
+ <listitem><para>Show all stored output lines, even in follow
+ mode. Undoes the effect of <option>--lines=</option>.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-r</option></term>
+ <term><option>--reverse</option></term>
+
+ <listitem><para>Reverse output so that 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 are shown. Takes one of the following
+ options:</para>
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>short</option>
+ </term>
+ <listitem>
+ <para>is the default and generates an output that is
+ mostly identical to the formatting of classic syslog
+ files, showing one line per journal entry.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>short-iso</option>
+ </term>
+ <listitem>
+ <para>is very similar, but shows ISO 8601 wallclock
+ timestamps.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>short-precise</option>
+ </term>
+ <listitem>
+ <para>is very similar, but shows timestamps with full
+ microsecond precision.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>short-monotonic</option>
+ </term>
+ <listitem>
+ <para>is very similar, but shows monotonic timestamps
+ instead of wallclock timestamps.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>verbose</option>
+ </term>
+ <listitem>
+ <para>shows the full-structured entry items with all
+ fields.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>export</option>
+ </term>
+ <listitem>
+ <para>serializes the journal into a binary (but mostly
+ text-based) stream suitable for backups and network
+ transfer (see
+ <ulink url="http://www.freedesktop.org/wiki/Software/systemd/export">Journal Export Format</ulink>
+ for more information).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>json</option>
+ </term>
+ <listitem>
+ <para>formats entries as JSON data structures, one per
+ line (see
+ <ulink url="http://www.freedesktop.org/wiki/Software/systemd/json">Journal JSON Format</ulink>
+ for more information).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>json-pretty</option>
+ </term>
+ <listitem>
+ <para>formats entries as JSON data structures, but
+ formats them in multiple lines in order to make them
+ more readable by humans.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>json-sse</option>
+ </term>
+ <listitem>
+ <para>formats entries as JSON data structures, but wraps
+ them in a format suitable for
+ <ulink url="https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events">Server-Sent Events</ulink>.
</para>
- </refsect1>
-
- <refsect1>
- <title>Options</title>
-
- <para>The following options are understood:</para>
-
- <variablelist>
- <varlistentry>
- <term><option>--no-full</option></term>
- <term><option>--full</option></term>
- <term><option>-l</option></term>
-
- <listitem><para>Ellipsize fields when
- they do not fit in available columns.
- The default is to show full fields,
- allowing them to wrap or be truncated
- by the pager, if one is used.</para>
-
- <para>The old options
- <option>-l</option>/<option>--full</option>
- are not useful anymore, except to undo
- <option>--no-full</option>.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-a</option></term>
- <term><option>--all</option></term>
-
- <listitem><para>Show all fields in
- full, even if they include unprintable
- characters or are very
- long.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-f</option></term>
- <term><option>--follow</option></term>
-
- <listitem><para>Show only the most recent
- journal entries, and continuously print
- new entries as they are appended to
- the journal.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <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 while
- <option>-nall</option> will disable this cap.
- Note that this option is only supported for the
- <citerefentry project='man-pages'><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
- events shown. If
- <option>--follow</option> is used,
- this option is implied. The argument is
- a positive integer or <literal>all</literal>
- to disable line limiting. The default value is
- 10 if no argument is given.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--no-tail</option></term>
-
- <listitem><para>Show all stored output
- lines, even in follow mode. Undoes the
- effect of
- <option>--lines=</option>.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-r</option></term>
- <term><option>--reverse</option></term>
-
- <listitem><para>Reverse output so that 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
- are shown. Takes one of the following options:
- </para>
- <variablelist>
- <varlistentry>
- <term>
- <option>short</option>
- </term>
- <listitem>
- <para>is the default
- and generates an output
- that is mostly identical
- to the formatting of
- classic syslog files,
- showing one line per
- journal entry.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <option>short-iso</option>
- </term>
- <listitem>
- <para>is very similar,
- but shows ISO 8601
- wallclock timestamps.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <option>short-precise</option>
- </term>
- <listitem>
- <para>is very similar,
- but shows timestamps
- with full microsecond
- precision.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <option>short-monotonic</option>
- </term>
- <listitem>
- <para>is very similar,
- but shows monotonic
- timestamps instead of
- wallclock timestamps.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <option>verbose</option>
- </term>
- <listitem>
- <para>shows the
- full-structured entry
- items with all fields.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <option>export</option>
- </term>
- <listitem>
- <para>serializes the
- journal into a binary
- (but mostly text-based)
- stream suitable for
- backups and network
- transfer (see <ulink
- url="http://www.freedesktop.org/wiki/Software/systemd/export">Journal
- Export Format</ulink>
- for more
- information).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <option>json</option>
- </term>
- <listitem>
- <para>formats entries
- as JSON data structures,
- one per line (see <ulink
- url="http://www.freedesktop.org/wiki/Software/systemd/json">Journal
- JSON Format</ulink> for
- more information).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <option>json-pretty</option>
- </term>
- <listitem>
- <para>formats entries as
- JSON data structures,
- but formats them in
- multiple lines in order
- to make them more
- readable by humans.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <option>json-sse</option>
- </term>
- <listitem>
- <para>formats entries as
- JSON data structures,
- but wraps them in a
- format suitable for <ulink
- url="https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events">Server-Sent
- Events</ulink>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <option>cat</option>
- </term>
- <listitem>
- <para>generates a very
- terse output, only
- showing the actual
- message of each journal
- entry with no metadata,
- not even a timestamp.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--utc</option></term>
-
- <listitem><para>Express time in Coordinated Universal
- Time (UTC).</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-x</option></term>
- <term><option>--catalog</option></term>
-
- <listitem><para>Augment log lines with
- explanation texts from the message
- catalog. This will add explanatory
- help texts to log messages in the
- output where this is available. These
- short help texts will explain the
- context of an error or log event,
- possible solutions, as well as
- pointers to support forums, developer
- documentation, and any other relevant
- manuals. Note that help texts are not
- available for all messages, but only
- for selected ones. For more
- information on the message catalog,
- please refer to the <ulink
- url="http://www.freedesktop.org/wiki/Software/systemd/catalog">Message
- Catalog Developer
- Documentation</ulink>.</para>
-
- <para>Note: when attaching
- <command>journalctl</command> output
- to bug reports, please do
- <emphasis>not</emphasis> use
- <option>-x</option>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-q</option></term>
- <term><option>--quiet</option></term>
-
- <listitem><para>Suppresses any warning
- messages regarding inaccessible system
- journals when run as a normal
- user.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-m</option></term>
- <term><option>--merge</option></term>
-
- <listitem><para>Show entries
- interleaved from all available
- journals, including remote
- ones.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-b <optional><replaceable>ID</replaceable></optional><optional><replaceable>±offset</replaceable></optional></option></term>
- <term><option>--boot=<optional><replaceable>ID</replaceable></optional><optional><replaceable>±offset</replaceable></optional></option></term>
-
- <listitem><para>Show messages from a specific
- boot. This will add a match for
- <literal>_BOOT_ID=</literal>.</para>
-
- <para>The argument may be empty, in which case
- logs for the current boot will be shown.</para>
-
- <para>If the boot ID is omitted, a positive
- <replaceable>offset</replaceable> will look up
- the boots starting from the beginning of the
- journal, and a equal-or-less-than zero
- <replaceable>offset</replaceable> will look up
- boots starting from the end of the
- journal. Thus, <constant>1</constant> means the
- first boot found in the journal in
- chronological order, <constant>2</constant> the
- second and so on; while <constant>-0</constant>
- is the last boot, <constant>-1</constant> the
- boot before last, and so on. An empty
- <replaceable>offset</replaceable> is equivalent
- to specifying <constant>-0</constant>, except
- when the current boot is not the last boot
- (e.g. because <option>--directory</option> was
- specified to look at logs from a different
- machine).</para>
-
- <para>If the 32-character
- <replaceable>ID</replaceable> is specified, it
- may optionally be followed by
- <replaceable>offset</replaceable> which
- identifies the boot relative to the one given by
- boot <replaceable>ID</replaceable>. Negative
- values mean earlier boots and a positive values
- mean later boots. If
- <replaceable>offset</replaceable> is not
- specified, a value of zero is assumed, and the
- logs for the boot given by
- <replaceable>ID</replaceable> are shown.
- </para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--list-boots</option></term>
-
- <listitem><para>Show a tabular list of
- boot numbers (relative to the current
- boot), their IDs, and the timestamps
- of the first and last message
- pertaining to the boot.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-k</option></term>
- <term><option>--dmesg</option></term>
-
- <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>-t</option></term>
- <term><option>--identifier=<replaceable>SYSLOG_IDENTIFIER</replaceable>|<replaceable>PATTERN</replaceable></option></term>
-
- <listitem><para>Show messages for the
- specified syslog identifier
- <replaceable>SYSLOG_IDENTIFIER</replaceable>, or
- for any of the messages with a <literal>SYSLOG_IDENTIFIER</literal>
- matched by <replaceable>PATTERN</replaceable>.</para>
-
- <para>This parameter can be specified
- multiple times.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-u</option></term>
- <term><option>--unit=<replaceable>UNIT</replaceable>|<replaceable>PATTERN</replaceable></option></term>
-
- <listitem><para>Show messages for the
- specified systemd unit
- <replaceable>UNIT</replaceable> (such
- as a service unit), or for any of the
- units matched by
- <replaceable>PATTERN</replaceable>.
- If a pattern is specified, a list of
- unit names found in the journal is
- compared with the specified pattern
- and all that match are used. For each
- unit name, a match is added for
- messages from the unit
- (<literal>_SYSTEMD_UNIT=<replaceable>UNIT</replaceable></literal>),
- along with 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>
- <term><option>-p</option></term>
- <term><option>--priority=</option></term>
-
- <listitem><para>Filter output by
- message priorities or priority
- ranges. Takes either a single numeric
- or textual log level (i.e. between
- 0/<literal>emerg</literal> and
- 7/<literal>debug</literal>), or a
- range of numeric/text log levels in
- the form FROM..TO. The log levels are
- the usual syslog log levels as
- documented in
- <citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
- i.e. <literal>emerg</literal> (0),
- <literal>alert</literal> (1),
- <literal>crit</literal> (2),
- <literal>err</literal> (3),
- <literal>warning</literal> (4),
- <literal>notice</literal> (5),
- <literal>info</literal> (6),
- <literal>debug</literal> (7). If a
- 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
- messages within the range are shown,
- including both the start and the end
- value of the range. This will add
- <literal>PRIORITY=</literal> matches
- for the specified
- priorities.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-c</option></term>
- <term><option>--cursor=</option></term>
-
- <listitem><para>Start showing entries
- from the location in the journal
- specified by the passed
- cursor.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--after-cursor=</option></term>
-
- <listitem><para>Start showing entries
- from the location in the journal
- <emphasis>after</emphasis> the
- location specified by the this cursor.
- The cursor is shown when the
- <option>--show-cursor</option> option
- is used.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--show-cursor</option></term>
-
- <listitem><para>The cursor is shown after the last
- entry after two dashes:</para>
- <programlisting>-- cursor: s=0639...</programlisting>
- <para>The format of the cursor is private
- and subject to change.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--since=</option></term>
- <term><option>--until=</option></term>
-
- <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
- <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
- understood, which refer to 00:00:00 of
- the day before the current day, the
- current day, or the day after the
- current day, respectively. <literal>now</literal>
- refers to the current time. Finally,
- relative times may be specified,
- prefixed with <literal>-</literal> or
- <literal>+</literal>, referring to
- times before or after the current
- time, respectively.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-F</option></term>
- <term><option>--field=</option></term>
-
- <listitem><para>Print all possible
- data values the specified field can
- take in all entries of the
- journal.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <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>
-
- <varlistentry>
- <term><option>-M</option></term>
- <term><option>--machine=</option></term>
-
- <listitem><para>Show messages from a
- running, local container. Specify a
- container name to connect
- to.</para></listitem>
- </varlistentry>
-
- <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 an
- 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 an 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-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. This will print the new ID in
- three different formats which can be
- copied into source code or
- similar.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--header</option></term>
-
- <listitem><para>Instead of showing
- journal contents, show internal header
- information of the journal fields
- accessed.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--disk-usage</option></term>
-
- <listitem><para>Shows the current disk
- usage of all journal files. This shows
- the sum of the disk usage of all
- archived and active journal
- files.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--vacuum-size=</option></term>
- <term><option>--vacuum-time=</option></term>
-
- <listitem><para>Removes archived
- journal files until the disk space
- they use falls below the specified
- size (specified with the usual K, M,
- G, T suffixes), or all journal files
- contain no data older than the
- specified timespan (specified with the
- usual s, min, h, days, months, weeks,
- years suffixes). Note that running
- <option>--vacuum-size=</option> has
- only indirect effect on the output
- shown by <option>--disk-usage</option>
- as the latter includes active journal
- files, while the former only operates
- on archived journal
- files. <option>--vacuum-size=</option>
- and <option>--vacuum-time=</option>
- may be combined in a single invocation
- to enforce both a size and time limit
- on the archived journal
- files.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--list-catalog
- <optional><replaceable>128-bit-ID...</replaceable></optional>
- </option></term>
-
- <listitem><para>List the contents of
- the message catalog as a table of
- message IDs, plus their short
- description strings.</para>
-
- <para>If any
- <replaceable>128-bit-ID</replaceable>s are
- specified, only those entries are shown.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--dump-catalog
- <optional><replaceable>128-bit-ID...</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>128-bit-ID</replaceable>s are
- specified, only those entries are shown.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--update-catalog</option></term>
-
- <listitem><para>Update the message
- catalog index. This command needs to
- be executed each time new catalog
- files are installed, removed, or
- updated to rebuild the binary catalog
- index.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--setup-keys</option></term>
-
- <listitem><para>Instead of showing
- 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. Refer to the
- <option>Seal=</option> option in
- <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for information on Forward Secure
- Sealing and for a link to a refereed
- scholarly paper detailing the
- cryptographic theory it is based on.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--force</option></term>
-
- <listitem><para>When
- <option>--setup-keys</option> is passed and
- Forward Secure Sealing (FSS) has already been
- configured, recreate FSS keys.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--interval=</option></term>
-
- <listitem><para>Specifies the change
- interval for the sealing key when
- generating an FSS key pair with
- <option>--setup-keys</option>. Shorter
- intervals increase CPU consumption but
- shorten the time range of
- undetectable journal
- alterations. Defaults to
- 15min.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--verify</option></term>
-
- <listitem><para>Check the journal file
- for internal consistency. If the
- file has been generated with FSS
- enabled and the FSS verification key
- has been specified with
- <option>--verify-key=</option>,
- authenticity of the journal file is
- verified.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--verify-key=</option></term>
-
- <listitem><para>Specifies the FSS
- verification key to use for the
- <option>--verify</option>
- operation.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--flush</option></term>
-
- <listitem><para>Asks the Journal
- daemon to flush any log data stored in
- <filename>/run/log/journal</filename>
- into
- <filename>/var/log/journal</filename>,
- if persistent storage is enabled. This
- call does not return until the
- operation is
- complete.</para></listitem>
- </varlistentry>
-
- <xi:include href="standard-options.xml" xpointer="help" />
- <xi:include href="standard-options.xml" xpointer="version" />
- <xi:include href="standard-options.xml" xpointer="no-pager" />
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>Exit status</title>
-
- <para>On success, 0 is returned; otherwise, a non-zero
- failure code is returned.</para>
- </refsect1>
-
- <xi:include href="less-variables.xml" />
-
- <refsect1>
- <title>Examples</title>
-
- <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>
-
- <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>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>cat</option>
+ </term>
+ <listitem>
+ <para>generates a very terse output, only showing the
+ actual message of each journal entry with no metadata,
+ not even a timestamp.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--utc</option></term>
+
+ <listitem><para>Express time in Coordinated Universal Time
+ (UTC).</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-x</option></term>
+ <term><option>--catalog</option></term>
+
+ <listitem><para>Augment log lines with explanation texts from
+ the message catalog. This will add explanatory help texts to
+ log messages in the output where this is available. These
+ short help texts will explain the context of an error or log
+ event, possible solutions, as well as pointers to support
+ forums, developer documentation, and any other relevant
+ manuals. Note that help texts are not available for all
+ messages, but only for selected ones. For more information on
+ the message catalog, please refer to the
+ <ulink url="http://www.freedesktop.org/wiki/Software/systemd/catalog">Message Catalog Developer Documentation</ulink>.</para>
+
+ <para>Note: when attaching <command>journalctl</command>
+ output to bug reports, please do <emphasis>not</emphasis> use
+ <option>-x</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-q</option></term>
+ <term><option>--quiet</option></term>
+
+ <listitem><para>Suppresses any warning messages regarding
+ inaccessible system journals when run as a normal
+ user.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-m</option></term>
+ <term><option>--merge</option></term>
+
+ <listitem><para>Show entries interleaved from all available
+ journals, including remote ones.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-b <optional><replaceable>ID</replaceable></optional><optional><replaceable>±offset</replaceable></optional></option></term>
+ <term><option>--boot=<optional><replaceable>ID</replaceable></optional><optional><replaceable>±offset</replaceable></optional></option></term>
+
+ <listitem><para>Show messages from a specific boot. This will
+ add a match for <literal>_BOOT_ID=</literal>.</para>
+
+ <para>The argument may be empty, in which case logs for the
+ current boot will be shown.</para>
+
+ <para>If the boot ID is omitted, a positive
+ <replaceable>offset</replaceable> will look up the boots
+ starting from the beginning of the journal, and a
+ equal-or-less-than zero <replaceable>offset</replaceable> will
+ look up boots starting from the end of the journal. Thus,
+ <constant>1</constant> means the first boot found in the
+ journal in chronological order, <constant>2</constant> the
+ second and so on; while <constant>-0</constant> is the last
+ boot, <constant>-1</constant> the boot before last, and so
+ on. An empty <replaceable>offset</replaceable> is equivalent
+ to specifying <constant>-0</constant>, except when the current
+ boot is not the last boot (e.g. because
+ <option>--directory</option> was specified to look at logs
+ from a different machine).</para>
+
+ <para>If the 32-character <replaceable>ID</replaceable> is
+ specified, it may optionally be followed by
+ <replaceable>offset</replaceable> which identifies the boot
+ relative to the one given by boot
+ <replaceable>ID</replaceable>. Negative values mean earlier
+ boots and a positive values mean later boots. If
+ <replaceable>offset</replaceable> is not specified, a value of
+ zero is assumed, and the logs for the boot given by
+ <replaceable>ID</replaceable> are shown.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--list-boots</option></term>
+
+ <listitem><para>Show a tabular list of boot numbers (relative to
+ the current boot), their IDs, and the timestamps of the first
+ and last message pertaining to the boot.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-k</option></term>
+ <term><option>--dmesg</option></term>
+
+ <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>-t</option></term>
+ <term><option>--identifier=<replaceable>SYSLOG_IDENTIFIER</replaceable>|<replaceable>PATTERN</replaceable></option></term>
+
+ <listitem><para>Show messages for the specified syslog
+ identifier <replaceable>SYSLOG_IDENTIFIER</replaceable>, or
+ for any of the messages with a
+ <literal>SYSLOG_IDENTIFIER</literal> matched by
+ <replaceable>PATTERN</replaceable>.</para>
+
+ <para>This parameter can be specified multiple
+ times.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-u</option></term>
+ <term><option>--unit=<replaceable>UNIT</replaceable>|<replaceable>PATTERN</replaceable></option></term>
+
+ <listitem><para>Show messages for the specified systemd unit
+ <replaceable>UNIT</replaceable> (such as a service unit), or
+ for any of the units matched by
+ <replaceable>PATTERN</replaceable>. If a pattern is
+ specified, a list of unit names found in the journal is
+ compared with the specified pattern and all that match are
+ used. For each unit name, a match is added for messages from
+ the unit
+ (<literal>_SYSTEMD_UNIT=<replaceable>UNIT</replaceable></literal>),
+ along with 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>
+ <term><option>-p</option></term>
+ <term><option>--priority=</option></term>
+
+ <listitem><para>Filter output by message priorities or
+ priority ranges. Takes either a single numeric or textual log
+ level (i.e. between 0/<literal>emerg</literal> and
+ 7/<literal>debug</literal>), or a range of numeric/text log
+ levels in the form FROM..TO. The log levels are the usual
+ syslog log levels as documented in
+ <citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ i.e. <literal>emerg</literal> (0),
+ <literal>alert</literal> (1), <literal>crit</literal> (2),
+ <literal>err</literal> (3), <literal>warning</literal> (4),
+ <literal>notice</literal> (5), <literal>info</literal> (6),
+ <literal>debug</literal> (7). If a 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 messages within the range are shown, including both the
+ start and the end value of the range. This will add
+ <literal>PRIORITY=</literal> matches for the specified
+ priorities.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-c</option></term>
+ <term><option>--cursor=</option></term>
+
+ <listitem><para>Start showing entries from the location in the
+ journal specified by the passed cursor.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--after-cursor=</option></term>
+
+ <listitem><para>Start showing entries from the location in the
+ journal <emphasis>after</emphasis> the location specified by
+ the this cursor. The cursor is shown when the
+ <option>--show-cursor</option> option is used.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--show-cursor</option></term>
+
+ <listitem><para>The cursor is shown after the last entry after
+ two dashes:</para>
+ <programlisting>-- cursor: s=0639...</programlisting>
+ <para>The format of the cursor is private
+ and subject to change.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--since=</option></term>
+ <term><option>--until=</option></term>
+
+ <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
+ <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 understood, which refer to
+ 00:00:00 of the day before the current day, the current day,
+ or the day after the current day,
+ respectively. <literal>now</literal> refers to the current
+ time. Finally, relative times may be specified, prefixed with
+ <literal>-</literal> or <literal>+</literal>, referring to
+ times before or after the current time, respectively.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-F</option></term>
+ <term><option>--field=</option></term>
+
+ <listitem><para>Print all possible data values the specified
+ field can take in all entries of the journal.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <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>
+
+ <varlistentry>
+ <term><option>-M</option></term>
+ <term><option>--machine=</option></term>
+
+ <listitem><para>Show messages from a running, local
+ container. Specify a container name to connect to.</para>
+ </listitem>
+ </varlistentry>
+
+ <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 an 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 an 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-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. This will print the new ID in three different
+ formats which can be copied into source code or similar.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--header</option></term>
+
+ <listitem><para>Instead of showing journal contents, show
+ internal header information of the journal fields
+ accessed.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--disk-usage</option></term>
+
+ <listitem><para>Shows the current disk usage of all journal
+ files. This shows the sum of the disk usage of all archived
+ and active journal files.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--vacuum-size=</option></term>
+ <term><option>--vacuum-time=</option></term>
+
+ <listitem><para>Removes archived journal files until the disk
+ space they use falls below the specified size (specified with
+ the usual <literal>K</literal>, <literal>M</literal>,
+ <literal>G</literal>, <literal>T</literal> suffixes), or all
+ journal files contain no data older than the specified
+ timespan (specified with the usual <literal>s</literal>,
+ <literal>min</literal>, <literal>h</literal>,
+ <literal>days</literal>, <literal>months</literal>,
+ <literal>weeks</literal>, <literal>years</literal>
+ suffixes). Note that running <option>--vacuum-size=</option>
+ has only indirect effect on the output shown by
+ <option>--disk-usage</option> as the latter includes active
+ journal files, while the former only operates on archived
+ journal files. <option>--vacuum-size=</option> and
+ <option>--vacuum-time=</option> may be combined in a single
+ invocation to enforce both a size and time limit on the
+ archived journal files.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--list-catalog
+ <optional><replaceable>128-bit-ID...</replaceable></optional>
+ </option></term>
+
+ <listitem><para>List the contents of the message catalog as a
+ table of message IDs, plus their short description strings.
+ </para>
+
+ <para>If any <replaceable>128-bit-ID</replaceable>s are
+ specified, only those entries are shown.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--dump-catalog
+ <optional><replaceable>128-bit-ID...</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>128-bit-ID</replaceable>s are
+ specified, only those entries are shown.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--update-catalog</option></term>
+
+ <listitem><para>Update the message catalog index. This command
+ needs to be executed each time new catalog files are
+ installed, removed, or updated to rebuild the binary catalog
+ index.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--setup-keys</option></term>
+
+ <listitem><para>Instead of showing 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. Refer to the <option>Seal=</option> option in
+ <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for information on Forward Secure Sealing and for a link to a
+ refereed scholarly paper detailing the cryptographic theory it
+ is based on.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--force</option></term>
+
+ <listitem><para>When <option>--setup-keys</option> is passed
+ and Forward Secure Sealing (FSS) has already been configured,
+ recreate FSS keys.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--interval=</option></term>
- <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097</programlisting>
+ <listitem><para>Specifies the change interval for the sealing
+ key when generating an FSS key pair with
+ <option>--setup-keys</option>. Shorter intervals increase CPU
+ consumption but shorten the time range of undetectable journal
+ alterations. Defaults to 15min.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--verify</option></term>
+
+ <listitem><para>Check the journal file for internal
+ consistency. If the file has been generated with FSS enabled and
+ the FSS verification key has been specified with
+ <option>--verify-key=</option>, authenticity of the journal file
+ is verified.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--verify-key=</option></term>
+
+ <listitem><para>Specifies the FSS verification key to use for
+ the <option>--verify</option> operation.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--flush</option></term>
+
+ <listitem><para>Asks the Journal daemon to flush any log data
+ stored in <filename>/run/log/journal</filename> into
+ <filename>/var/log/journal</filename>, if persistent storage is
+ enabled. This call does not return until the operation is
+ complete.</para></listitem>
+ </varlistentry>
- <para>If two matches refer to the same field, all entries matching either expression are shown:</para>
+ <xi:include href="standard-options.xml" xpointer="help" />
+ <xi:include href="standard-options.xml" xpointer="version" />
+ <xi:include href="standard-options.xml" xpointer="no-pager" />
+ </variablelist>
+ </refsect1>
- <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service</programlisting>
+ <refsect1>
+ <title>Exit status</title>
- <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
- from the D-Bus service (from any of its
- processes):</para>
+ <para>On success, 0 is returned; otherwise, a non-zero failure
+ code is returned.</para>
+ </refsect1>
- <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service</programlisting>
+ <xi:include href="less-variables.xml" />
- <para>Show all logs generated by the D-Bus executable:</para>
+ <refsect1>
+ <title>Examples</title>
- <programlisting>journalctl /usr/bin/dbus-daemon</programlisting>
+ <para>Without arguments, all collected logs are shown
+ unfiltered:</para>
- <para>Show all logs of the kernel device node <filename noindex='true'>/dev/sda</filename>:</para>
+ <programlisting>journalctl</programlisting>
- <programlisting>journalctl /dev/sda</programlisting>
+ <para>With one match specified, all entries with a field matching
+ the expression are shown:</para>
- <para>Show all kernel logs from previous boot:</para>
+ <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service</programlisting>
- <programlisting>journalctl -k -b -1</programlisting>
+ <para>If two different fields are matched, only entries matching
+ both expressions at the same time are shown:</para>
- <para>Show a live log display from a system service <filename>apache.service</filename>:</para>
+ <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097</programlisting>
- <programlisting>journalctl -f -u apache</programlisting>
+ <para>If two matches refer to the same field, all entries matching
+ either expression are shown:</para>
- </refsect1>
+ <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service</programlisting>
- <refsect1>
- <title>See Also</title>
- <para>
- <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- </para>
- </refsect1>
+ <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 from the D-Bus service (from any of its
+ processes):</para>
+
+ <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service</programlisting>
+
+ <para>Show all logs generated by the D-Bus executable:</para>
+
+ <programlisting>journalctl /usr/bin/dbus-daemon</programlisting>
+
+ <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 previous boot:</para>
+
+ <programlisting>journalctl -k -b -1</programlisting>
+
+ <para>Show a live log display from a system service
+ <filename>apache.service</filename>:</para>
+
+ <programlisting>journalctl -f -u apache</programlisting>
+
+ </refsect1>
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ </para>
+ </refsect1>
</refentry>
More information about the systemd-commits
mailing list