프로세스가 코어를 덤프할 때 특정 종료 코드를 설정합니까? 또는 코어가 쉘 스크립트에 덤프되었는지 감지하는 방법이 있습니까?
가끔 코어를 덤프하는 작업을 트리거하는 쉘 스크립트가 있습니다. 내 작업에서 코어를 덤프하는 경우 다음 줄에서 상태를 확인하고 관심 있는 다른 작업에 코어 덤프를 알릴 수 있도록 셸 스크립트를 수정하고 싶습니다.
코어 덤프를 저장하고 분석합니다. 이제 간단한 find 명령으로 이 작업을 수행할 수 있습니다. 쉘 스크립트의 특정 라인이 코어 덤프를 발생시켰는지 확인할 수 있다면 문제를 더 빨리 진단할 수 있습니다.
우분투 12.04에서.
답변1
실제로 프로세스가 특정 신호에 의해 종료되면 코어 덤프가 자동으로 생성되고 종료 코드는 신호(128 + signal_value)에 의해 결정됩니다. Linux에서는 신호가 최소한 SIGQUIT(3)일 수 있습니다. ), SIGILL(4), SIGABRT(6), SIGFPE(8), SIGSEGV(11). 더 완전한 목록을 보려면 signal(7) 매뉴얼 페이지를 참조하십시오. 코어 덤프가 항상 생성되는 것은 아닙니다. 경우에 따라 core(5) 매뉴얼 페이지를 참조하십시오.
참고: 시스템 호출에 대한 전체 액세스 권한이 있는 언어에서는 (그러나 POSIX 쉘 스크립트의 경우는 해당되지 않음) 하위 프로세스가 코어 덤프를 생성한 경우 true를 반환하기 위해 (Linux에서 사용 가능) wait
사용할 수 있습니다 . WCOREDUMP
자세한 내용은 wait(2) 매뉴얼 페이지를 참조하십시오.