Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Welcher Dienst ist Linux Abrtd?

Welcher Dienst ist Linux Abrtd?

藏色散人
藏色散人Original
2023-03-27 09:19:243196Durchsuche

linux abrtd ist ein Daemon, der Anwendungsabstürze überwacht. Wenn ein Absturz auftritt, sammelt er die abgestürzte Anwendung und ergreift Maßnahmen basierend auf der Art des Absturzes, der in der Konfigurationsdatei abrt.conf im Ordner „/etc/abrt“ konfiguriert ist. Verzeichnis Nachfolgend sind die Konfigurationen „abrt.conf“ usw. aufgeführt.

Welcher Dienst ist Linux Abrtd?

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.

abrtd-Dienst belegt Systemressourcen?

Problembeschreibung

Es gibt einen Prozess in unserer Entwicklungsumgebung, der besonders Ressourcen verbraucht. Dies ist schon mehrmals vor Ort und in der öffentlichen Cloud passiert, und irgendwann wird dieser Prozess den Speicher der Maschine füllen und zum Absturz führen. Jetzt habe ich dieses Problem gerade vor Ort entdeckt

Welcher Dienst ist Linux Abrtd?

Lösungsideen und -methoden

Das erste, was Sie tun müssen, wenn der Prozess voll ist, ist, sich den Prozessnamen anzusehen und visuell zu überprüfen, ob er beendet ist Als ich es zum ersten Mal gesehen habe

top -pH 48297 Schauen Sie sich an, welcher Thread im jeweiligen Prozess ein Problem hat, und stellen Sie fest, dass nur ein Prozess keinen Thread hat
Welcher Dienst ist Linux Abrtd?

ps Schauen Sie sich an, wo sich das Verzeichnis dieses Dienstes befindet

[root@yq01-kg-section1-bud3 libexec]# ps -ef | grep  abrt-hook-ccpp
root     45733 11797  0 12:18 pts/8    00:00:00 grep --color=auto abrt-hook-ccpp
root     48297     2 99 Nov16 ?        15:42:50 /usr/libexec/abrt-hook-ccpp 11 0 8669 0 0 1605530067 e 8669 8669

Keine Ahnung! ! Ich habe mit der Suche auf Baidu begonnen und Folgendes gefunden:

abrtd

abrtd ist ein Daemon-Prozess, der Anwendungsabstürze überwacht, die Absturzdaten (Befehlszeile der Kerndateien usw.) der Anwendung erfasst und übernimmt Maßnahmen je nach Art des Absturzes und basierend auf der Konfiguration in der Konfigurationsdatei abrt.conf. Es gibt verschiedene Aktionen des Plug-Ins: Beispielsweise meldet Bugzilla Abstürze, überträgt den Bericht per FTP oder Report oder SCP Überprüfen Sie die Manpage des entsprechenden Plug-Ins.
abrtd: Automatischer Fehlerberichts-Daemon
Das Schlimmste an Linux-Debugging-Programmen ist, dass das Programm abnormal abstürzt, die Kerndatei jedoch nicht gefunden werden kann um das Problem zu lokalisieren. Aber mit der Kerndatei ist es viel einfacher, sie zu finden.

Im Allgemeinen können Sie ulimit -c unlimited in der Umgebungsvariablen festlegen. Aber Außendienstmitarbeiter vergessen manchmal, diesen Befehl festzulegen. Was ist also zu tun? Dies kann durch Einrichten des Abrt-Dienstes von Linux erreicht werden.

Ändern Sie die Datei abrt-action-save-package-data.conf

Ändern Sie sie wie folgt:

vi /etc/abrt/abrt-action-save-package-data.conf

# With this option set to "yes",
# only crashes in signed packages will be analyzed.
# the list of public keys used to check the signature is
# in the file gpg_keys
#
OpenGPGCheck = no


# Blacklisted packages
#
BlackList = nspluginwrapper, valgrind, strace, mono-core


# Process crashes in executables which do not belong to any package?
#
ProcessUnpackaged = yes


# Blacklisted executable paths (shell patterns)
#
BlackListedPaths = /usr/share/doc/, /example*, /usr/bin/nspluginviewer, /usr/lib/xulrunner-*/plugin-container


还可以调整core文件的大小:

[root@xx-host2 abrt]# cat abrt.conf 
# Enable this if you want abrtd to auto-unpack crashdump tarballs which appear
# in this directory (for example, uploaded via ftp, scp etc).
# Note: you must ensure that whatever directory you specify here exists
# and is writable for abrtd. abrtd will not create it automatically.
#
#WatchCrashdumpArchiveDir = /var/spool/abrt-upload


# Max size for crash storage [MiB] or 0 for unlimited
#
MaxCrashReportsSize = 1000


# Specify where you want to store coredumps and all files which are needed for
# reporting. (default:/var/spool/abrt)
#
# Changing dump location could cause problems with SELinux. See man abrt_selinux(8).
#
#DumpLocation = /var/spool/abrt


# If you want to automatically clean the upload directory you have to tweak the
# selinux policy.
#
DeleteUploaded = no

Starten Sie den abrtd-Dienst neu: service abrtd restart

Wenn Sie eine Kerndatei haben, müssen Sie diese rechtzeitig löschen Führen Sie die Datei über das Listenpaket abrt-cli aus und verwenden Sie dann abrt-cli rm [Dateipaket].

Wenn das Programm abstürzt, verbraucht abrt-hook-ccpp zu viel CPU und die IO ist zu hoch, was dazu führt, dass das System voll ist. Deaktivieren Sie es einfach.
systemctl stop abrt-ccpp.service
systemctl disable abrt-ccpp.service
systemctl status abrt-ccpp.service

Ich habe den systemctl status abrt-ccpp.service überprüft und festgestellt, dass dieser Dienst überhaupt nicht gestartet ist

Baidu schon wieder

usr/libexec/abrt-hook-ccpp Warum nimmt dieser Prozess ständig zu? Weil dies nicht möglich ist. Das durch die Erstellung der CCPP-Datei verursachte

erfordert eine Änderung des ProcessUnpackaged-Parameters in /etc/abrt/abrt-action-save-package-data.conf.

Ändern Sie den ProcessUnpackaged-Parameter in /etc/abrt/abrt-action-save-package-data.conf

sed -i 's/ProcessUnpackaged = no/ProcessUnpackaged = yes/g' /etc/abrt/abrt-action-save-package-data.conf&& service abrtd restart
Nach der Änderung funktioniert es immer noch nicht.

Nov 17 13:15:15 yq01-kg-section1-bud3 abrtd: Lock file '.lock' is locked by process 48297
Nov 17 13:15:15 yq01-kg-section1-bud3 abrtd: Lock file '.lock' is locked by process 48297
Nov 17 13:15:16 yq01-kg-section1-bud3 abrtd: Lock file '.lock' is locked by process 48297
Nov 17 13:15:16 yq01-kg-section1-bud3 abrtd: Lock file '.lock' is locked by process 48297
Nov 17 13:15:17 yq01-kg-section1-bud3 abrtd: Lock file '.lock' is locked by process 48297
Nov 17 13:15:17 yq01-kg-section1-bud3 systemd: abrtd.service stop-sigterm timed out. Killing.
Nov 17 13:15:17 yq01-kg-section1-bud3 systemd: abrtd.service: main process exited, code=killed, status=9/KILL
Nov 17 13:15:17 yq01-kg-section1-bud3 systemd: Unit abrtd.service entered failed state.
Nov 17 13:15:17 yq01-kg-section1-bud3 systemd: abrtd.service failed.
Nov 17 13:15:17 yq01-kg-section1-bud3 abrtd: Lock file '.lock' is locked by process 48297
Ich habe festgestellt, dass der Dienst nicht funktioniert wurde neu gestartet und zeigt an, dass er durch diesen Prozess gesperrt wurde. Dieser Prozess ist derjenige, der viele Ressourcen in Anspruch nimmt !


Empfohlenes Lernen: „
Linux-Video-TutorialWelcher Dienst ist Linux Abrtd?

Das obige ist der detaillierte Inhalt vonWelcher Dienst ist Linux Abrtd?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Ist Redhat Linux kostenlos?Nächster Artikel:Ist Redhat Linux kostenlos?