이전에는 코어 덤프 생성이 제대로 작동했지만 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/
core
ulimit(1)
ulimit -c unlimited
systemd(1)
coredumpctl(1)
systemd
올바른 시작 지점에서 실행 systemd-sysctl.service
하고 변경 후 재실행을 처리하면 됩니다.sysctl