systemd-coredump가 덤프를 메모리 자체에 저장하는 이유는 무엇입니까?

systemd-coredump가 덤프를 메모리 자체에 저장하는 이유는 무엇입니까?

최근에 종료한 몇 가지 프로세스의 코어 덤프가 내 메모리의 대부분을 차지한다는 사실을 방금 알아차렸습니다. 충돌이 발생한 각 프로세스에 대해 systemd-coredump 프로세스를 실행했습니다(보통 이러한 프로세스는 google-chrome이었고 강제 종료했는데, 이는 많은 메모리 소비를 설명했습니다).

내가 알고 싶은 것은 충돌한 프로세스의 코어를 디스크에 덤프하는 대신 전체 코어를 메모리에 유지하는 새로운 프로세스가 시작되는 이유입니다.

내 구성에 문제가 있습니까? 아니면 이렇게 되어 있어야 합니까? 그렇다면 이 동작을 어떻게 바꿀 수 있습니까?

/dev/null현재 링크를 통해 코어 덤프 저장소를 비활성화 했으며 /etc/sysctl.d/coredump.conf코어 덤프가 표시되지 않더라도 이를 활성화된 상태로 유지하고 싶습니다. 어떤 아이디어/팁이라도 주시면 감사하겠습니다.

(이 질문은 다음 위치에도 게시되었습니다.https://bbs.archlinux.org/viewtopic.php?pid=1246237)

답변1

기본적으로 코어 덤프는 디스크에 기록되며 메모리에 기록되어서는 안 됩니다. 보다핵심 매뉴얼 페이지더 많은 정보를 알고 싶습니다. 다음을 통해 코어 파일의 경로와 파일 이름을 찾고 변경할 수 있습니다./proc/sys/kernel/core_pattern

coredump.conf다음으로 리디렉션하여 코어 덤프를 비활성화할 수 있습니다.null

$ sudo ln -s /dev/null /etc/sysctl.d/coredump.conf && /lib/systemd/systemd-sysctl

코어 덤프를 비활성화하는 또 다른 방법은 다음과 같습니다.설정 변경존재하다limits.conf

관련 정보