실행 중인 프로세스의 코어 덤프 비활성화

실행 중인 프로세스의 코어 덤프 비활성화

우리는 쉽게 충돌하는 공급업체의 제품을 다루고 있습니다(대량의 코어 덤프 포함).닫혔을 때(영수증 후 SIGTERM).

코어는 정상 작동 중에 충돌이 발생할 때 유용하기 때문에 코어 덤프를 완전히 비활성화하고 싶지 않습니다. 프로세스를 종료하기 전에 프로세스의 코어 덤프를 비활성화할 수 있습니까?

자체 핵심 핸들러를 작성하는 것이 부족합니다.

답변1

내가 찾은 한 가지 방법은 - 놀랍게도 다른 Unix 간에 이식 가능하며 - 코어를 덤프할 디렉터리(보통 프로세스의 현재 작업 디렉터리)를 만드는 것입니다.쓸 수 없음. 예를 들어, 이 테스트에서는 sleep분할 오류 신호가 발생하더라도 프로세스가 코어 덤프를 생성하지 않습니다.

sleep 50 &    # Launch sleep in the background
chmod u-w .   # Make the current directory unwritable for the owner
kill -11 $!   # Send the backgrounded sleep-process a SIGSEGV
chmod u+w .   # Restore the directory's permissions

이것은 우리의 목적에 충분합니다. 우리는 애플리케이션을 닫을 때 디렉터리에 새 파일이 기록되는 것을 원하지 않습니다(코어 덤프이든 다른 것이든). 그러나 모든 사람에게 적합하지는 않을 수 있습니다...

바라건대 다른 것(심지어 Linux에만 해당되는 것 포함)이 존재하기를 바랍니다.

관련 정보