systemd로 마이그레이션한 후 더 이상 코어 덤프가 없습니다.

systemd로 마이그레이션한 후 더 이상 코어 덤프가 없습니다.

이전에는 코어 덤프 생성이 제대로 작동했지만 systemd로 전환한 후에는 이 메시지만 표시됩니다.

Aborted (core dumped)

하지만 core파일이 생성되지 않습니다. systemd와 관련이 있습니까?

(배경: 내 원래 질문은 다음에서 찾을 수 있습니다.여기. 해결책을 찾아주신 shaiba에게 감사드립니다. 이것이 시스템 문제라는 것을 이미 알고 있는 다른 사람들이 더 쉽게 해결책을 찾을 수 있도록 이 Q&A를 제공합니다. )

답변1

기본적으로 systemd는 코어 덤프를 로그에 기록합니다. coredumpctl list누락된 코어 덤프를 나열합니다.

파일은 에 저장됩니다 /var/lib/systemd/coredump. coredumpctl dump코어 파일에 액세스하는 데 사용됩니다.

예를 들어 PID가 10666이면 다음을 사용할 수 있습니다.

coredumpctl dump 10666 --output /tmp/core.10666

systemd와 관련이 없지만 여전히 작동하지 않으면 코어 덤프 조절을 꺼야 합니다.

# ulimit -c unlimited

또한 작업 디렉터리에 쓸 수 있는지 확인합니다.

답변2

커널 설정은 또는 에 의해 /proc/sys/관리되며 sysctl(8)시스템 기본 설정은 재정의됩니다 . 파일 이름 등을 정의합니다. 그들에 의해 작성되지 않았습니다(커널이 SUID 바이너리에서 코어 덤프를 허용하도록 구성되지 않은 경우). 글쓰기는 통제됩니다 . 즉, 제한이 없습니다. 코어에서 제어하는 ​​사물에 의해 생성된 파일은 로그에 기록되며 일반 사용자 사물은 변경되지 않습니다./usr/lib/sysctl.d//etc/sysctl.conf/etc/sysctl.d/coreulimit(1)ulimit -c unlimitedsystemd(1)coredumpctl(1)

systemd올바른 시작 지점에서 실행 systemd-sysctl.service하고 변경 후 재실행을 처리하면 됩니다.sysctl

관련 정보