]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - man/systemd-journald.service.xml
travis: use UBSan checks from OSS-Fuzz
[thirdparty/systemd.git] / man / systemd-journald.service.xml
index fec0e1fe88d5ee41abb4987784be749c309b09b9..8bbb9931cfa25baa9b2c3d4510fdad7ac9428ec8 100644 (file)
@@ -1,40 +1,13 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-
-<!--
-  This file is part of systemd.
-
-  Copyright 2010 Lennart Poettering
-
-  systemd is free software; you can redistribute it and/or modify it
-  under the terms of the GNU Lesser General Public License as published by
-  the Free Software Foundation; either version 2.1 of the License, or
-  (at your option) any later version.
-
-  systemd is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  Lesser General Public License for more details.
-
-  You should have received a copy of the GNU Lesser General Public License
-  along with systemd; If not, see <http://www.gnu.org/licenses/>.
--->
+<!-- SPDX-License-Identifier: LGPL-2.1+ -->
 
 <refentry id="systemd-journald.service">
 
   <refentryinfo>
     <title>systemd-journald.service</title>
     <productname>systemd</productname>
-
-    <authorgroup>
-      <author>
-        <contrib>Developer</contrib>
-        <firstname>Lennart</firstname>
-        <surname>Poettering</surname>
-        <email>lennart@poettering.net</email>
-      </author>
-    </authorgroup>
   </refentryinfo>
 
   <refmeta>
@@ -76,7 +49,7 @@
 
       <listitem><para>Structured system log messages via the native
       Journal API, see
-      <citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>4</manvolnum></citerefentry></para></listitem>
+      <citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry></para></listitem>
 
       <listitem><para>Standard output and standard error of service units. For further details see
       below.</para></listitem>
     for more information about the collected metadata.
     </para>
 
-    <para>Log data collected by the journal is primarily text-based
-    but can also include binary data where necessary. All objects
-    stored in the journal can be up to 2^64-1 bytes in size.</para>
+    <para>Log data collected by the journal is primarily text-based but can also include binary data where
+    necessary. Individual fields making up a log record stored in the journal may be up to 2^64-1 bytes in size.</para>
+
+    <para>The journal service stores log data either persistently below <filename>/var/log/journal</filename> or in a
+    volatile way below <filename>/run/log/journal/</filename> (in the latter case it is lost at reboot). By default, log
+    data is stored persistently if <filename>/var/log/journal/</filename> exists during boot, with an implicit fallback
+    to volatile storage otherwise. Use <varname>Storage=</varname> in
+    <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> to configure
+    where log data is placed, independently of the existence of <filename>/var/log/journal/</filename>.</para>
 
-    <para>By default, the journal stores log data in
-    <filename>/run/log/journal/</filename>. Since
-    <filename>/run/</filename> is volatile, log data is lost at
-    reboot. To make the data persistent, it is sufficient to create
-    <filename>/var/log/journal/</filename> where
-    <filename>systemd-journald</filename> will then store the
-    data:</para>
+    <para>On systems where <filename>/var/log/journal/</filename> does not exist yet but where persistent logging is
+    desired (and the default <filename>journald.conf</filename> is used), it is sufficient to create the directory, and
+    ensure it has the correct access modes and ownership:</para>
 
     <programlisting>mkdir -p /var/log/journal
 systemd-tmpfiles --create --prefix /var/log/journal</programlisting>
@@ -123,7 +98,7 @@ systemd-tmpfiles --create --prefix /var/log/journal</programlisting>
     <para>If <filename>systemd-journald.service</filename> is stopped, the stream connections associated with all
     services are terminated. Further writes to those streams by the service will result in <constant>EPIPE</constant>
     errors. In order to react gracefully in this case it is recommended that programs logging to standard output/error
-    ignore such errors. If the the <constant>SIGPIPE</constant> UNIX signal handler is not blocked or turned off, such
+    ignore such errors. If the <constant>SIGPIPE</constant> UNIX signal handler is not blocked or turned off, such
     write attempts will also result in such process signals being generated, see
     <citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>. To mitigate this issue,
     systemd service manager explicitly turns off the <constant>SIGPIPE</constant> signal for all invoked processes by
@@ -145,12 +120,12 @@ systemd-tmpfiles --create --prefix /var/log/journal</programlisting>
     transports listed above, which are inherently record based and where the metadata is always associated with the
     individual record.</para>
 
-    <para>In addition to the the implicit standard output/error logging of services, stream logging is also available
+    <para>In addition to the implicit standard output/error logging of services, stream logging is also available
     via the <citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry> command
     line tool.</para>
 
     <para>Currently, the number of parallel log streams <filename>systemd-journald</filename> will accept is limited to
-    4096. When this limit is reached further log streams may be established but will receieve
+    4096. When this limit is reached further log streams may be established but will receive
     <constant>EPIPE</constant> right from the beginning.</para>
   </refsect1>
 
@@ -228,10 +203,10 @@ systemd-tmpfiles --create --prefix /var/log/journal</programlisting>
 
     <para>Journal files are, by default, owned and readable by the
     <literal>systemd-journal</literal> system group but are not
-    writable. Adding a user to this group thus enables her/him to read
+    writable. Adding a user to this group thus enables them to read
     the journal files.</para>
 
-    <para>By default, each logged in user will get her/his own set of
+    <para>By default, each logged in user will get their own set of
     journal files in <filename>/var/log/journal/</filename>. These
     files will not be owned by the user, however, in order to avoid
     that the user can write to them directly. Instead, file system
@@ -257,9 +232,7 @@ systemd-tmpfiles --create --prefix /var/log/journal</programlisting>
       <varlistentry>
         <term><filename>/etc/systemd/journald.conf</filename></term>
 
-        <listitem><para>Configure
-        <command>systemd-journald</command>
-        behavior. See
+        <listitem><para>Configure <command>systemd-journald</command> behavior. See
         <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
         </para></listitem>
       </varlistentry>
@@ -270,8 +243,7 @@ systemd-tmpfiles --create --prefix /var/log/journal</programlisting>
         <term><filename>/var/log/journal/<replaceable>machine-id</replaceable>/*.journal</filename></term>
         <term><filename>/var/log/journal/<replaceable>machine-id</replaceable>/*.journal~</filename></term>
 
-        <listitem><para><command>systemd-journald</command> writes
-        entries to files in
+        <listitem><para><command>systemd-journald</command> writes entries to files in
         <filename>/run/log/journal/<replaceable>machine-id</replaceable>/</filename>
         or
         <filename>/var/log/journal/<replaceable>machine-id</replaceable>/</filename>
@@ -283,7 +255,24 @@ systemd-tmpfiles --create --prefix /var/log/journal</programlisting>
         <filename>/var/log/journal</filename> is not available, or
         when <option>Storage=volatile</option> is set in the
         <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-        configuration file.</para></listitem>
+        configuration file.</para>
+
+        <para>When <filename>systemd-journald</filename> ceases writing to a journal file,
+        it will be renamed to <literal><replaceable>original-name</replaceable>@<replaceable>suffix.journal</replaceable></literal>
+        (or <literal><replaceable>original-name</replaceable>@<replaceable>suffix.journal~</replaceable></literal>).
+        Such files are "archived" and will not be written to any more.</para>
+
+        <para>In general, it is safe to read or copy any journal file (active or archived).
+        <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+        and the functions in the
+        <citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+        library should be able to read all entries that have been fully written.</para>
+
+        <para><filename>systemd-journald</filename> will automatically remove the oldest
+        archived journal files to limit disk use. See <varname>SystemMaxUse=</varname>
+        and related settings in
+        <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+        </para></listitem>
       </varlistentry>
 
       <varlistentry>
@@ -311,7 +300,7 @@ systemd-tmpfiles --create --prefix /var/log/journal</programlisting>
       <citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
       <citerefentry project='die-net'><refentrytitle>setfacl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
-      <citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
       <command>pydoc systemd.journal</command>
     </para>
   </refsect1>