]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - man/systemd-journald.service.xml
man: don't claim systemd-analyze was documented as part of the man-pages project
[thirdparty/systemd.git] / man / systemd-journald.service.xml
index fec0e1fe88d5ee41abb4987784be749c309b09b9..5e7835f8f6e09447ee1b6552bbb5e3c94e6c85a9 100644 (file)
@@ -3,22 +3,11 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
+  SPDX-License-Identifier: LGPL-2.1+
+
   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/>.
 -->
 
 <refentry id="systemd-journald.service">
     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 +114,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 +136,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>
 
@@ -257,9 +248,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 +259,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 +271,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>