[완료] 시그널 핸들러에서 SIGKILL 처리하는 방법

kgykingdom의 이미지

다수의 프로세스가 큐로 메시지를 주고 받는데..

kill -9 로 시그널을 보내서 프로세스가 중지될 경우.

시그널 핸들러에서 SIGKILL 을 받아서 큐를 제거하게 하고 싶습니다.

그런데 찾아봐도 방법을 잘 모르겠네요.

가르침을 주세요.. ^^ 현재 프로세스들은 데몬으로 동작하고 있습니다.

현재는 아래 처럼 했는데 안되네요.

sig_handler(int signo)
{
  remove_queue();
}
main()
{
  signal(SIGKILL, sig_handler);
}
kgykingdom의 이미지

SIGKILL 은 사용자 지정이 불가능한거 같군요.. ㅡㅡ;

cats96의 이미지

kill(signo,SIGKILL);로 하시면 됩니다.

모지리의 이미지

SIGKILL 은 처리할수 없는 시그널입니다.

SIGTERM이나 다른걸 가지고 하세요.
CHILD를 생성하서 그곳에서 큐를 사용했다면
CHILD가 죽을때 SIGCHILD를 발생하니깐 이것을 받아서
처리하셔도 괜찮을거 같고요.