2012-03-27 5 views
3

악마 프로세스로 실행되고 응용 프로그램 로그 파일과 함께 발생하는 코어 덤프를 수집하는 C/C++ 응용 프로그램을 설계 할 계획입니다. 리눅스에서 응용 프로그램이 작동하지 않는 것을 알 수있는 방법이 있습니까?코어 덤프 모니터링 응용 프로그램

+0

'/ proc/'폴더가 있는지 정기적으로 확인 하시겠습니까? 가장 큰 해결책은 아니다 ... – BoBTFish

+0

프로세스가 애플리케이션을 시작했다면 ('SIGCHLD'waitpid', ...) 할 수있다. 주어진 프로세스가 존재 하는지를 알고 싶다면 0 시그널과 함께'kill' 시스템 호출을 사용하십시오. –

+0

당신은 데몬을 의미합니까? 그렇지 않으면 서버에 문제가 있습니다. – Konrad

답변

4

먼저 코어 덤프 파일이 작성하는 디렉토리를 변경할 수 있습니다. 리눅스에서는 /proc/sys/kernel/core_pattern입니다 (this blog 참조)

둘째, 변경 사항을 디렉토리에서 모니터링 할 수 있습니다 (Inotify - how to use it? - linux 참조).

핵심 패턴을 특정 디렉토리로 설정하고 새 파일을 모니터링하기 만하면됩니다.

1

또 다른 옵션은 (지금까지의 다른 좋은 제안 외에) here과 같이/proc/sys/kernel/core_pattern을 설정하여 코어 파일을 생성되는 응용 프로그램에 파이프 할 수 있습니다. 애플리케이션은 예를 들어, 코어 파일을 생성할지 여부, 코어 파일을 저장할 위치, 실행 중에 코어 파일을 압축하거나 코어 파일이 생성되었다는 것을 IPC를 통해 다른 응용 프로그램에 알리십시오.