#  This file is part of systemd.
#
#  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.

# See sysctl.d(5) for the description of the files in this directory.

# Pipe the core file to systemd-coredump. The systemd-coredump process spawned
# by the kernel will start a second copy of itself as the
# systemd-coredump@.service, which will do the actual processing and storing of
# the core dump.
#
# See systemd-coredump(8) and core(5).
kernel.core_pattern=|{{LIBEXECDIR}}/systemd-coredump %P %u %g %s %t %c %h

# Allow 16 coredumps to be dispatched in parallel by the kernel.
# We collect metadata from /proc/%P/, and thus need to make sure the crashed
# processes are not reaped until we have finished collecting what we need. The
# kernel default for this sysctl is "0" which means the kernel doesn't wait for
# userspace to finish processing before reaping the crashed processes. With a
# higher setting the kernel will delay reaping until we are done, but only for
# the specified number of crashes in parallel. The value of 16 is chosen to
# match systemd-coredump.socket's MaxConnections= value.
kernel.core_pipe_limit=16

# Also dump processes executing a set-user-ID/set-group-ID program that is
# owned by a user/group other than the real user/group ID of the process, or
# a program that has file capabilities. ("2" is called "suidsafe" in core(5)).
#
# systemd-coredump will store the core file owned by the effective uid and gid
# of the running process (and not the filesystem-user-ID which the kernel uses
# when saving a core dump).
#
# See proc(5), setuid(2), capabilities(7).
fs.suid_dumpable=2
