<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="coredump.conf" conditional="ENABLE_COREDUMP"
          xmlns:xi="http://www.w3.org/2001/XInclude">
  <refentryinfo>
    <title>coredump.conf</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>coredump.conf</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>coredump.conf</refname>
    <refname>coredump.conf.d</refname>
    <refpurpose>Core dump storage configuration files</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>/etc/systemd/coredump.conf</filename></para>
    <para><filename>/etc/systemd/coredump.conf.d/*.conf</filename></para>
    <para><filename>/run/systemd/coredump.conf.d/*.conf</filename></para>
    <para><filename>/usr/lib/systemd/coredump.conf.d/*.conf</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>These files configure the behavior of
    <citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
    a handler for core dumps invoked by the kernel. Whether <command>systemd-coredump</command> is used
    is determined by the kernel's
    <varname>kernel.core_pattern</varname> <citerefentry project='man-pages'><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    setting. See
    <citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    and
    <citerefentry project='man-pages'><refentrytitle>core</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    pages for the details.</para>
  </refsect1>

  <xi:include href="standard-conf.xml" xpointer="main-conf" />

  <refsect1>
    <title>Options</title>

    <para>All options are configured in the
    [Coredump] section:</para>

    <variablelist class='config-directives'>

      <varlistentry>
        <term><varname>Storage=</varname></term>

        <listitem><para>Controls where to store cores. One of <literal>none</literal>,
        <literal>external</literal>, and <literal>journal</literal>. When
        <literal>none</literal>, the core dumps may be logged (including the backtrace if
        possible), but not stored permanently. When <literal>external</literal> (the
        default), cores will be stored in <filename>/var/lib/systemd/coredump/</filename>.
        When <literal>journal</literal>, cores will be stored in the journal and rotated
        following normal journal rotation patterns.</para>

        <para>When cores are stored in the journal, they might be
        compressed following journal compression settings, see
        <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
        When cores are stored externally, they will be compressed
        by default, see below.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>Compress=</varname></term>

        <listitem><para>Controls compression for external
        storage. Takes a boolean argument, which defaults to
        <literal>yes</literal>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>ProcessSizeMax=</varname></term>

        <listitem><para>The maximum size in bytes of a core which will be processed. Core dumps exceeding
        this size may be stored, but the backtrace will not be generated.  Like other sizes in this same
        config file, the usual suffixes to the base of 1024 are allowed (B, K, M, G, T, P, and E).</para>

        <para>Setting <varname>Storage=none</varname> and <varname>ProcessSizeMax=0</varname>
        disables all coredump handling except for a log entry.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>ExternalSizeMax=</varname></term>
        <term><varname>JournalSizeMax=</varname></term>

        <listitem><para>The maximum (compressed or uncompressed) size in bytes of a core to be saved. Unit
        suffixes are allowed just as in <option>ProcessSizeMax=</option>.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>MaxUse=</varname></term>
        <term><varname>KeepFree=</varname></term>

        <listitem><para>Enforce limits on the disk space, specified
        in bytes, taken up by externally stored core dumps.
        Unit suffixes are allowed just as in <option>ProcessSizeMax=</option>.
        <option>MaxUse=</option> makes
        sure that old core dumps are removed as soon as the total disk
        space taken up by core dumps grows beyond this limit (defaults
        to 10% of the total disk size). <option>KeepFree=</option>
        controls how much disk space to keep free at least (defaults
        to 15% of the total disk size). Note that the disk space used
        by core dumps might temporarily exceed these limits while
        core dumps are processed. Note that old core dumps are also
        removed based on time via
        <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
        Set either value to 0 to turn off size-based cleanup.</para></listitem>
      </varlistentry>
    </variablelist>

    <para>The defaults for all values are listed as comments in the
    template <filename>/etc/systemd/coredump.conf</filename> file that
    is installed by default.</para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
