Unix C ---- signal 관련
글쓴이: 익명 사용자 / 작성시간: 월, 2002/02/18 - 9:56오전
프로세스에서 fopen하여 application 로그를 작성하다가요.
강제로 kill 당하거나 illegal instruction(실행중인 프로세스 실행파일
을 덮어쓰는경우)을 당했을때
프로세스에서 write하던 로그를 살리고싶은데요.
어떻게 하면될까요?
kill 당하는것은 signal로 잡을수 없다고 하던데.
꼭 킬당해서 프로세스 죽기전에
로그살리려면 fclose(log_fp)해주어야하는 상황인데...
어떻게 좋은 방법이 있을까요?
정리하면 프로세스가 죽기전에 텍스트파일에 저장된 로그를 살리는겁니
다.
Forums:
상대 Process가 Kill당하는 것을 실시간으로 아는 방법
P1 감시하기를 원하는 프로세스
P2 감시하는 프로세스
1. P2이 fifo 공통이름으로 개설
2. P1이 Process Num + Thread Num의 이름으로 Fifo개설
3. P1이 P2에 자기 fifo이름을 넘겨줌(P2의 공통이름 fifo에)
4. P2는 fifo를 open하고 select 대기
5. P1이 죽은 경우에 P2는 실시간으로 P1이 죽은 것을 감지
(read로 select에 등록한후 select에서 길이 0 감지)
6. P2가 이 사실을 log에 기록.
좀 헷갈릴 수는 있지만...이것도 한가지 방법이 아닐까요?
더 좋은 방법 있으면 누가 가르켜줬음 하네요.
Re: Unix C ---- signal 관련
록그 쓸때마다 file open하고 close 하면 되지 않겠어요?
로그 시간이 상당히 짧다면, 디스크 IO가 많이 일어나겠지만요..
아니면, RPC Message Queue 같은걸 사용해서,
로그를 MSG QUEUE로 쓰시면,
프로세서가 죽어도 로그는 살아 있겠네요..
댓글 달기