<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
        "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">

<!--
  This file is part of systemd.

  Copyright 2014 Zbigniew Jędrzejewski-Szmek

  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="coredump.conf" conditional="ENABLE_COREDUMP"
          xmlns:xi="http://www.w3.org/2001/XInclude">
  <refentryinfo>
    <title>coredump.conf</title>
    <productname>systemd</productname>

    <authorgroup>
      <author>
        <contrib>Developer</contrib>
        <firstname>Lennart</firstname>
        <surname>Poettering</surname>
        <email>lennart@poettering.net</email>
      </author>
    </authorgroup>
  </refentryinfo>

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

  <refnamediv>
    <refname>coredump.conf</refname>
    <refname>coredump.conf.d</refname>
    <refpurpose>Coredump 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.</para>
  </refsect1>

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

  <refsect1>
    <title>Options</title>

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

    <variablelist>

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

        <listitem><para>Controls where to store cores. One of
        <literal>none</literal>, <literal>external</literal>,
        <literal>journal</literal>, and <literal>both</literal>. When
        <literal>none</literal>, the coredumps will be logged 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. When <literal>both</literal>, cores
        will be stored in both locations.</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. Coredumps exceeding this size
        will be logged, but the backtrace will not be generated
        and the core will not be stored.</para></listitem>
      </varlistentry>

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

        <listitem><para>The maximum (uncompressed) size in bytes of a
        core to be saved.</para></listitem>
      </varlistentry>

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

        <listitem><para>Enforce limits on the disk space taken up by
        externally stored coredumps. <option>MaxUse=</option> makes
        sure that old coredumps are removed as soon as the total disk
        space taken up by coredumps 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 coredumps might temporarily exceed these limits while
        coredumps are processed. Note that old coredumps 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
        clean-up.</para></listitem>
      </varlistentry>
    </variablelist>

  </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>
