Linux 응용 프로그램 중 하나의 충돌 원인을 찾으려고합니다. 그러나 나는 핵심이 어디로 가고 있는지 모른다.
cat /proc/sys/kernel/core_pattern
core.%e.%p
어떤 아이디어?
답변
코어 덤프는 충돌 당시 프로세스의 현재 디렉토리에 작성됩니다.
물론 코어 덤프는 활성화해야하며 기본적으로 비활성화됩니다. 출력이 ulimit -c
0이면 코어 파일이 기록되지 않습니다. ulimit -c unlimited
코어 덤프를 활성화하기 위해 실행하십시오 . 이는 프로세스 별 설정으로 해당 프로세스에 의해 시작된 프로세스에 의해 상속됩니다.
코어 덤프가 생성되었지만 위치를 모르는 경우 프로세스를 다시 시작할 수 있습니다 (즉시 중단하지 않으면) 프로세스의 프로세스 ID는 ls -l /proc/$pid/cwd
어디에서 수행하여 작업 디렉토리를 확인하십시오 $pid
. 해당 링크는 해당 프로세스의 현재 작업 디렉토리를 가리 킵니다. 핵심 덤프가있을 가능성이 있습니다. 그렇지 않으면 find
전체 시스템 에서 실행해야 합니다.
답변
systemd를 사용하는 시스템 은 일반적으로 코어를 덤프하도록 구성됩니다.
/var/lib/systemd/coredump/
coredumpctl
명령을 사용하여 코어 덤프를 나열 할 수 있습니다 . 참조하지 더 – 더 – 코어 덤프 – 후 – 마이그레이션 –systemd에