linux abrtd는 응용 프로그램 충돌을 모니터링하는 데몬입니다. 충돌이 발생하면 충돌한 응용 프로그램을 수집하고 "/etc/abrt"에 있는 abrt.conf 구성 파일에 구성된 충돌 유형에 따라 조치를 취합니다. 디렉토리 "abrt.conf" 등의 구성이 있습니다.
이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터.
abrtd 서비스가 시스템 리소스를 점유하고 있나요?
우리 개발 환경에서 특히 리소스를 소모하는 프로세스가 있습니다. 이유를 분석해 주실 수 있나요? 이는 현장 및 퍼블릭 클라우드 이전에도 여러 번 발생했으며 결국 이 프로세스로 인해 시스템 메모리가 가득 차고 가동 중지 시간이 발생하게 됩니다. 이제 막 현장에서 이 문제를 발견했습니다
프로세스가 가득 찼을 때 가장 먼저 해야 할 일은 프로세스 이름을 보고, 끝났는지 육안으로 확인하는 것입니다. 처음 봤을 때
top -pH 48297 특정 프로세스의 어느 스레드에 문제가 있는지 살펴보고, 한 프로세스에만 스레드가 없는 것을 발견합니다
ps 이 서비스의 디렉터리가 어디에 있는지 살펴보세요
.[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
전혀 모르겠어! ! Baidu에서 검색을 시작했고 다음을 발견했습니다.
abrtd는 응용 프로그램 충돌을 모니터링하는 데몬 프로세스입니다. 충돌이 발생하면 충돌(핵심 파일의 명령줄 등) 응용 프로그램을 수집하고 가져옵니다. 유형에 따른 조치 충돌이 발생하고 abrt.conf 구성 파일의 구성을 기반으로 합니다. 플러그인의 다양한 작업이 있습니다. 예를 들어, bugzilla는 충돌을 보고하고, ftp나 보고서 또는 scp를 통해 보고서를 전송합니다. 해당 플러그인의 매뉴얼 페이지를 확인하세요.
abrtd: 자동 버그 리포트 데몬. 자동 버그 리포트 데몬
리눅스 디버깅 프로그램에서 가장 괴로운 점은 프로그램이 비정상적으로 종료되는데, 핵심 파일을 찾을 수 없어 어렵다는 것입니다. 문제를 찾으려면. 하지만 코어 파일을 사용하면 찾기가 훨씬 쉽습니다.
일반적으로 환경 변수에 ulimit -c unlimited를 설정할 수 있습니다. 그러나 현장 구현자는 때때로 이 명령을 설정하는 것을 잊어버립니다. 그렇다면 무엇을 해야 할까요? Linux의 abrt 서비스를 설정하면 됩니다.
abrt-action-save-package-data.conf 파일을 수정하세요
다음으로 수정하세요:
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
abrtd 서비스 다시 시작: service abrtd restart
코어 파일이 있는 경우 시간 내에 삭제해야 합니다. abrt-cli list 패키지를 통해 파일을 가져온 다음 abrt-cli rm [파일 패키지]를 사용합니다.
프로그램이 충돌하면 abrt-hook-ccpp가 너무 많은 CPU를 사용하고 IO가 너무 높아 시스템이 가득 찼습니다. 간단히 비활성화하세요.
systemctl stop abrt-ccpp.service
systemctl 비활성화 abrt-ccpp.service
systemctl status abrt-ccpp.service
systemctl status abrt-ccpp.service를 확인해보니 이 서비스가 전혀 시작되지 않은 것을 발견했습니다
Baidu가 다시
usr/libexec/abrt-hook-ccpp 이 프로세스가 계속 증가하는 이유는 무엇인가요? ccpp 파일 생성으로 인해 발생하는
sed -i 's/ProcessUnpackaged = no/ProcessUnpackaged = yes/g' /etc/abrt/abrt-action-save-package-data.conf&& service abrtd restart
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
kill -9 48297
서비스 상태를 확인하세요
linux 비디오 튜토리얼"
위 내용은 Linux abrtd는 어떤 서비스인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!