plucky (8) systemd-coredump.8.gz

Provided by: manpages-de_4.25.1-1_all bug

BEZEICHNUNG

       systemd-coredump, systemd-coredump.socket, systemd-coredump@.service - Erlangen, Speichern und
       Verarbeiten von Speicherauszügen

ÜBERSICHT

       /usr/lib/systemd/systemd-coredump

       /usr/lib/systemd/systemd-coredump --backtrace

       systemd-coredump@.service

       systemd-coredump.socket

BESCHREIBUNG

       systemd-coredump@.service ist ein System-Dienst, um Speicherauszüge zu verarbeiten. Es wird eine
       Zusammenfassung der Ereignisse nach systemd-journald.service(8) protokollieren, einschließlich
       Informationen über den Prozesskennzeichner, Eigentümer, das Signal, das den Prozess tötete und (falls
       möglich) die Stack-Ablaufverfolgung (»Stack-Trace«). Es kann die Speicherauszüge auch für eine spätere
       Verarbeitung speichern. Siehe den nachfolgenden Abschnitt »Informationen über abgestürzte Prozesse«.

       Das Verhalten eines bestimmten Programms beim Empfang eines Signal wird durch zwei Faktoren geregelt, die
       in core(5) im Detail beschrieben sind. Insbesondere werden Speicherauszüge nur verarbeitet, wenn die
       zugehörigen Ressourcenbegrenzungen ausreichend sind.

       Speicherauszüge können in das Journal geschrieben oder als Datei gespeichert werden. In beiden Fällen
       können sie für weitere Verarbeitungen, beispielsweise in gdb(1), abgefragt werden. Siehe coredumpctl(1),
       insbesondere die Verben list und debug.

       Standardmäßig protokolliert systemd-coredump den Speicherauszug in das Journal, einschließlich (falls
       möglich) einer Ablaufverfolgung (Backtrace) und speichert den Speicherauszug (ein Abbild der
       Speicherinhalte des Prozesses) selbst in einer externen Datei in /var/lib/systemd/coredump. Diese
       Speicherauszüge werden nach ein paar Tagen standardmäßig gelöscht; siehe /usr/lib/tmpfiles.d/systemd.conf
       für Details. Beachten Sie, dass die Entfernung von Speicherauszugsdateien aus dem Dateisystem und das
       Entfernen der Journal-Einträge voneinander unabhängig sind, und die Speicherauszugsdatei ohne den
       Journal-Eintrag vorhanden sein kann und Journal-Einträge auf bereits entfernte Speicherauszugsdateien
       verweisen können. Einige Metadaten werden an die Speicherauszugsdateien in Form von erweiterten
       Attributen angehängt, so dass die Speicherauszugsdateien für einige Zwecke selbst ohne die vollständigen
       Metadaten im Journal-Eintrag nützlich sein können.

       Für weitere Details siehe Systemd-Speicherauszug-Handhabung[1].

   Aufruf von systemd-coredump
       Das Programm systemd-coredump erledigt die eigentliche Arbeit. Es wird zweimal aufgerufen: einmal als
       Handhabungsprogramm durch den Kernel und das zweite Mal in systemd-coredump@.service, um die Daten
       tatsächlich ins Journal zu schreiben und die Speicherauszugsdateien zu verarbeiten und zu speichern.

       Wenn der Kernel systemd-coredump aufruft, um den Speicherauszug zu handhaben, läuft es im privilegierten
       Modus und wird sich mit dem durch die Unit systemd-coredump.socket erstellten Socket verbinden, die
       wiederum eine nicht privilegierte systemd-coredump@.service-Instanz erzeugen wird, um den Speicherauzug
       zu verarbeiten. Daher sind systemd-coredump.socket und systemd-coredump@.service Hilfs-Units, die die
       eigentliche Verarbeitung von Speicherauszügen vornehmen und der normalen Diensteverwaltung unterliegen.

       Es ist auch möglich, systemd-coredump mit der Option --backtrace aufzurufen. In diesem Fall erwartet
       systemd-coredump auf der Standardeingabe einen Journaleintrag im Journal-Exportformat[2]. Der Eintrag
       sollte ein MESSAGE=-Feld und sämtliche zusätzliche Metadatenfelder, die der Aufrufende vernünftigerweise
       erwarten würde, enthalten. systemd-coredump hängt zusätzliche Metadatenfelder auf die gleiche Art an, wie
       es das für vom Kernel empfangene Speicherauszüge auch macht. In diesem Modus werden keine Speicherauszüge
       im Journal gespeichert.

KONFIGURATION

       Für von systemd gestartete Programme können Prozessressourcenbegrenzungen mit der Direktive LimitCORE=
       eingerichtet werden, siehe systemd.exec(5).

       Um vom Kernel für den Umgang mit Speicherauszügen eingesetzt zu werden, muss systemd-coredump im
       Parameter kernel.core_pattern von sysctl(8) konfiguriert sein. Die Syntax dieses Parameters wird in
       core(5) erklärt. Systemd installiert die Datei /usr/lib/sysctl.d/50-coredump.conf, die
       kernel.core_pattern entsprechend konfiguriert. Diese Datei kann gemäß normaler sysctl.d(5)-Regeln
       maskiert oder außer Kraft gesetzt werden, um eine andere Einstellung zu verwenden. Falls die
       Sysctl-Konfiguration verändert wird, muss diese im Kernel aktualisiert werden, bevor sie wirksam wird,
       siehe sysctl(8) und systemd-sysctl(8).

       Um im Modus --backtrace eingesetzt zu werden, muss ein geeignetes Backtrace-Handhabungsprogramm auf der
       Senderseite installiert sein. Im Falle von python(1) bedeutet dies beispielsweise, dass ein
       sys.excepthook installiert sein muss, siehe systemd-coredump-python[3].

       Das Verhalten von systemd-coredump selbst wird mittels der Konfigurationsdatei /etc/systemd/coredump.conf
       und entsprechenden Schnippseln in /etc/systemd/coredump.conf.d/*.conf konfiguriert, siehe
       coredump.conf(5). Eine neue Instanz von systemd-coredump wird nach jedem Empfang eines Speicherauszuges
       aufgerufen. Daher werden Änderungen in diesen Dateien wirksam, wenn das nächste Mal ein Speicherauszug
       empfangen wird.

       Die von Speicherauszügen verwandten Ressourcen werden auf zwei Arten begrenzt. Parameter wie die maximale
       Größe empfangener Speicherauszüge und Dateien können in den oben erwähnten Dateien
       /etc/systemd/coredump.conf und Schnippseln geändert werden. Zusätzlich wird die Speicherdauer von
       Speicherauszügen durch systemd-tmpfiles beschränkt, entsprechende Einstellungen sind standardmäßig in
       /usr/lib/tmpfiles.d/systemd.conf. Standardmäßig werden die Speicherauszüge nach ein paar Tagen gelöscht;
       weitere Details finden Sie in obiger Datei.

   Deaktivierung der Verarbeitung von Speicherauszügen
       Um die möglicherweise ressourcenintensive Verarbeitung durch systemd-coredump zu deaktivieren, setzen Sie

           Storage=none
           ProcessSizeMax=0

       in coredump.conf(5).

INFORMATIONEN ÜBER ABGESTÜRZTE PROZESSE

       coredumpctl(1) kann zur Abfrage gespeicherter Speicherauszüge, unabhängig von ihrem Ort, zur Anzeige von
       Informationen und zur Verarbeitung z.B. durch Weitergabe an den GNU-Debugger (gdb) verwandt werden.

       Im Journal gespeicherte Daten können auch wie gewöhnlich mit journalctl(1) (oder von einem anderen
       Prozess mittels der sd-journal(3)-API) betrachtet werden. Die relevanten Nachrichten enthalten
       MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1:

           $ journalctl MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1 -o verbose
           …
           MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1
           COREDUMP_PID=552351
           COREDUMP_UID=1000
           COREDUMP_GID=1000
           COREDUMP_SIGNAL_NAME=SIGSEGV
           COREDUMP_SIGNAL=11
           COREDUMP_TIMESTAMP=1614342930000000
           COREDUMP_COMM=Web Content
           COREDUMP_EXE=/usr/lib64/firefox/firefox
           COREDUMP_USER_UNIT=app-gnome-firefox-552136.scope
           COREDUMP_CMDLINE=/usr/lib64/firefox/firefox -contentproc -childID 5 -isForBrowser …
           COREDUMP_CGROUP=/user.slice/user-1000.slice/user@1000.service/app.slice/app-….scope
           COREDUMP_FILENAME=/var/lib/systemd/coredump/core.Web….552351.….zst
           …

       Die folgenden Felder werden (falls bekannt) mit dem Journal-Eintrag gespeichert:

       COREDUMP_UID=, COREDUMP_PID=, COREDUMP_GID=
           Die Prozessnummer (PID), die Benutzernummer (UID) und die Gruppennummer (GID) des Eigentümers des
           abgestürzten Prozesses.

           Falls der abgestürzte Prozess Teil eines Containers war (oder im allgemeinen in einem Prozess- oder
           Benutzernamensraum war), sind dies die von außen gesehenen Werte, im Namensraum, in dem
           systemd-coredump läuft.

           Hinzugefügt in Version 248.

       COREDUMP_TIMESTAMP=
           Die Uhrzeit vom Absturz, wie vom Kernel gemeldet (in µs seit der Epoch).

           Hinzugefügt in Version 248.

       COREDUMP_RLIMIT=
           Die weiche Ressourcenbegrenzung für Speicherauszugsdateien, siehe getrlimit(2).

           Hinzugefügt in Version 248.

       COREDUMP_UNIT=, COREDUMP_SLICE=
           Die Namen der System-Unit und der Scheibe.

           Wenn der abgestürzte Prozess sich in einem Container befand, sind dies die Unit-Namen außerhalb, im
           Haupt-Systemverwalter.

           Hinzugefügt in Version 248.

       COREDUMP_CGROUP=
           Die primäre Cgrup der Unit des abgestürzten Prozesses.

           Wenn der abgestürzte Prozess sich in einem Container befand, ist dies der vollständige Pfad, wie er
           außerhalb des Containers gesehen wird.

           Hinzugefügt in Version 248.

       COREDUMP_PROC_CGROUP=
           Control-Gruppen-Informationen in dem Format, das in /proc/self/cgroup genutzt wird. Auf Systemen mit
           vereinigter Cgroup-Hierarchie, ist dies der einzelne Pfad, dem »0::« vorangestellt wurde, und mehrere
           Pfade, denen die Controller-Nummer vorangestellt wurden, auf Altsystemen.

           Wenn der abgestürzte Prozess sich in einem Container befand, ist dies der vollständige Pfad, wie er
           außerhalb des Containers gesehen wird.

           Hinzugefügt in Version 248.

       COREDUMP_OWNER_UID=, COREDUMP_USER_UNIT=, COREDUMP_SESSION=
           Die numerische UID des Benutzers, dem die Anmeldesitzung oder die Systemd-Benutzer-Unit des
           abgestürzten Prozesses gehört, die Benutzerverwalter-Unit und den Sitzungskennzeichner. Alle drei
           Felder sind nur für Benutzerprozesse vorhanden.

           Wenn sich der abgestürzte Prozess in einem Container befand, sind dies die Werte außerhalb, im
           Hauptsystem.

           Hinzugefügt in Version 248.

       COREDUMP_SIGNAL_NAME=, COREDUMP_SIGNAL=
           Der Name des beendenden Signals (mit »SIG« am Anfang [4]) und der numerische Wert. (Beide sind
           enthalten, da sich die Signalnummern zwischen Architekturen unterscheiden.)

           Hinzugefügt in Version 248.

       COREDUMP_CWD=, COREDUMP_ROOT=
           Das aktuelle Arbeitsverzeichnis und Wurzelverzeichnis des abgestürzten Prozesses.

           Wenn sich der abgestürzte Prozess in einem Container befand, sind diese Pfade relativ zur Wurzel des
           Einhängenamensraums des Containers.

           Hinzugefügt in Version 248.

       COREDUMP_OPEN_FDS=
           Informationen über offene Dateideskriptoren, in den folgenden Formaten:

               fd:/Pfad/zur/Datei
               pos:     …
               flags:   …
               …

               fd:/Pfad/zur/Datei
               pos:     …
               flags:   …
               …

           Die erste Zeile enthält die Dateideskriptorennummer fd und den Pfad, während nachfolgende Zeilen die
           Inhalte von /proc/PID/fdinfo/fd anzeigen.

           Hinzugefügt in Version 248.

       COREDUMP_EXE=
           Das Ziel des Symlinks /proc/PID/exe.

           Wenn sich der abgestürzte Prozess in einem Container befindet, ist der Pfad relativ zu der Wurzel des
           Einhängenamensraums des Containers.

           Hinzugefügt in Version 248.

       COREDUMP_CMDLINE=, COREDUMP_COMM=, COREDUMP_ENVIRON=, COREDUMP_PROC_AUXV=, COREDUMP_PROC_LIMITS=,
       COREDUMP_PROC_MAPS=, COREDUMP_PROC_MOUNTINFO=, COREDUMP_PROC_STATUS=
           Felder, die die prozessbezogenen Einträge im Dateisystem /proc zuordnen: /proc/PID/cmdline (die
           Befehlszeile des abgestürzten Prozesses), /proc/PID/comm (der dem Prozess zugeordnete Befehlsname),
           /proc/PID/environ (der Umgebungsblock des abgestürzten Prozesses), /proc/PID/auxv (der Hilfsvektor
           des abgestürzten Prozesses, siehe getauxval(3)), /proc/PID/limits (die weichen und die harten
           Ressourcenbegrenzungen), /proc/PID/maps (Speicherregionen, die für den Prozess sichtbar sind und die
           zugehörigen Zugriffsberechtigungen), /proc/PID/mountinfo (Einhängepunkte im Einhängenamensraum des
           Prozesses), /proc/PID/status (verschiedene Metadaten des Prozesses).

           Siehe proc(5) für weitere Informationen.

           Hinzugefügt in Version 248.

       COREDUMP_HOSTNAME=
           Der System-Rechnername.

           Wenn sich der abgestürzte Prozess in einem Container befand, ist dies der Rechnername des Containers.

           Hinzugefügt in Version 248.

       COREDUMP_CONTAINER_CMDLINE=
           Für Prozesse, die in einem Container ausgeführt werden, die Befehlszeile des Prozesses, der den
           Container gestartet hat (der erste übergeordnete Prozess mit einem anderen Einhängenamensraum).

           Hinzugefügt in Version 248.

       COREDUMP=
           Wenn der Speicherauszug im Journal gespeichert wurde, das Speicherauszugsabbild selbst.

           Hinzugefügt in Version 248.

       COREDUMP_FILENAME=
           Wenn der Speicherauszug extern gespeichert wurde, der Pfad zu der Speicherauszugsdatei.

           Hinzugefügt in Version 248.

       COREDUMP_TRUNCATED=
           Auf »1« gesetzt, wenn der gespeicherte Speicherauszug abgeschnitten wurde. (Eine unvollständige
           Speicherauszugsdatei kann von einigen Werkzeugen noch verarbeitet werden, obwohl logischerweise nicht
           die vollständigen Informationen vorhanden sind.)

           Hinzugefügt in Version 248.

       COREDUMP_PACKAGE_NAME=, COREDUMP_PACKAGE_VERSION=, COREDUMP_PACKAGE_JSON=
           Falls das Programm .package-Metadaten-ELF-Bemerkungen enthält, werden diese ausgewertet und
           angehängt. Das Paket und die PaketVersion des [u00BB]Haupt[u00AB]-ELF-Moduls (d.h. des Programms)
           werden einzeln angehängt. Der JSON-formatierte Inhalt aller Module wird als einzelnes JSON-Objekt
           angehängt, jedes mit dem Modulnamen als Schlüssel. Für weitere Informationen über dieses
           Metadatenformat und den Inhalt, siehe die Speicherauszugs-Metadatenspezifikation[5].

           Hinzugefügt in Version 249.

       MESSAGE=
           Die durch systemd-coredump erstellte Nachricht, die die Ablaufverfolgung enthält, falls sie
           erfolgreich erstellt wurde. Wird systemd-coredump mit --backtrace aufgerufen, dann wird das Feld vom
           Aufrufenden bereitgestellt.

           Hinzugefügt in Version 248.

       Im Journal-Eintrag existieren eine Reihe von weiteren Feldern, die aber dem Protokollierungsprozess
       betreffen, d.h. systemd-coredump und nicht den abgestürzten Prozess. Siehe systemd.journal-fields(7).

       Die folgenden Felder werden mit der in COREDUMP_FILENAME= aufgeführten externen Datei als erweiterte
       Attribute gespeichert (falls bekannt):

       user.coredump.pid, user.coredump.uid, user.coredump.gid, user.coredump.signal, user.coredump.timestamp,
       user.coredump.rlimit, user.coredump.hostname, user.coredump.comm, user.coredump.exe
           Diese sind identisch zu den oben beschriebenen COREDUMP_PID=, COREDUMP_UID=, COREDUMP_GID=,
           COREDUMP_SIGNAL=, COREDUMP_TIMESTAMP=, COREDUMP_RLIMIT=, COREDUMP_HOSTNAME=, COREDUMP_COMM= und
           COREDUMP_EXE=.

           Hinzugefügt in Version 248.

       Diese können sich mittels getfattr(1) angeschaut werden. Für die im obigen Journal-Eintrag gezeigte
       Speicherauszugsdatei:

           $ getfattr --absolute-names -d /var/lib/systemd/coredump/core.Web….552351.….zst
           # file: /var/lib/systemd/coredump/core.Web….552351.….zst
           user.coredump.pid="552351"
           user.coredump.uid="1000"
           user.coredump.gid="1000"
           user.coredump.signal="11"
           user.coredump.timestamp="1614342930000000"
           user.coredump.comm="Web Content"
           user.coredump.exe="/usr/lib64/firefox/firefox"
           …

SIEHE AUCH

       coredump.conf(5), coredumpctl(1), systemd-journald.service(8), systemd-tmpfiles(8), core(5), sysctl.d(5),
       systemd-sysctl.service(8), Systemd-Speicherauszug-Handhabung[1]

ANMERKUNGEN

        1. Systemd-Speicherauszug-Handhabung
           https://systemd.io/COREDUMP

        2. Journal-Exportformat
           https://systemd.io/JOURNAL_EXPORT_FORMATS#journal-export-format

        3. systemd-coredump-python
           https://github.com/systemd/systemd-coredump-python

        4. kill(1) erwartet Signalnamen ohne den Präfix; kill(2) verwendet den Präfix; alle Systemd-Werkzeuge
           akzeptieren Signalnamen sowohl ohne als auch mit dem Präfix.

        5. Die Speicherauszugs-Metadatenspezifikation
           https://systemd.io/COREDUMP_PACKAGE_METADATA/

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE
       HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
       Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.