최근에 systemd로 업그레이드 한 후 코어 덤프가 없습니까?


12

작업중인 프로그램을 실행하면 다음 메시지와 함께 실패합니다.

...
Aborted (core dumped)

그러나 코어 덤프는 작성되지 않습니다. 코어 덤프는 이전에 작성되었으며 관련 내용을 변경 한 것을 기억하지 못합니다.

내가 실행할 때 ulimit -a내가 돌아올,

$ ulimit -a
core file size          (blocks, -c) unlimited
...

다른 점들,

  • 사용자가 현재 디렉토리에서 파일을 만들 수 있음을 확인했습니다.
  • 에 대해 읽었습니다 /proc/sys/fs/suid_dumpable. 현재 내 컴퓨터에서 0으로 설정되어 있습니다. 나는 그것을 1이나 2로 바꾸려고했지만 아무런 차이가 없습니다.
  • 또한 루트로 프로그램을 실행하려고 시도했지만 차이가 없었습니다.

불행히도, 마지막으로 성공한 코어 덤프를 언제 생산할 수 있었는지 기억이 나지 않습니다.

답변:


8

에 워드 프로세서 coredump.conf,

공급 업체가 제공 한 구성 파일을 비활성화하려면 권장되는 방법은 /dev/null의 구성 디렉토리에 /etc/공급 업체 구성 파일과 동일한 파일 이름으로 심볼릭 링크를 배치하는 것 입니다.

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

체계화되었으므로 사물은 다르게 관리됩니다.


와우, 네 말이 맞아! 얼마 전 나는 systemd로 전환했다. sudo systemd-coredumpctl누락 된 코어 덤프를 모두 표시합니다. 솔루션은 시스템 재부팅 후에 만 ​​작동했습니다.
Philipp Claßen

1
systemdsystemd-sysctl.service바로 실행 sysctl변경에 손으로 다시 실행 부팅의 적절한 시점에서, 그리고 핸들을. 구성 파일의 내용과 내용을 조사하지 않고 구성 파일을 작성하거나 덮어 쓰지 마십시오.
vonbrand

1
파일의 이름이으로 바뀌고 50-coredump.conf현재 부팅의 설정을 적용하려면 sysctl 설정을 수동으로 변경해야 합니다. stackoverflow.com/q/2065912/427545를 참조하십시오 .
Lekensteyn

2
기본값을 복원하려면 빈 문자열을 설정하지 말고 대신 이것을 사용하십시오.sysctl -w kernel.core_pattern="core"
Lekensteyn

2

coredumpctl명령 을 사용 하여 코어 덤프를 검색하거나 gdb를 실행할 수 있습니다. 이것이 '시스템 승인'방법입니다. :-/

어떤 의미에서, systemd는 이러한 모든 것들을 캡처하는 것이 잠시 후에 자동으로 지워지기 때문에 버그 보고서를 위해 크래시 덤프를 쉽게 업로드 할 수있게 해주는 것이 좋습니다.

그러나 systemd가 참여하기 전에 코어 덤프가 작동하는 방식을 아는 사람들에게는 알림이나 힌트가 거의없는 심각한 변화였습니다. coredumpctl을 사용하여 coredump를 얻는 방법과 .txt파일 생성을 끄는 방법에 대한 지침과 함께 'core.pid.txt'라는 파일을 삭제해도 큰 도움이 될 것입니다. 잠시 동안 파일 시스템.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.