상대편 소켓에 poll을 걸고 있는 중인데.
sigkill 이 발생했습니다.
당연 프로세스는 죽었습니다.
근데 이유를 대체 모르겠네요..
혹시 비슷한 경험을 가지고 있으신분 있으면
조언 부탁드립니다...
(sigkill이라 핸들링 할수도 없고..--;)
poll을 사용해서 기다리는 중에 SIGKILL signal을 받았다는 것은 누군가가 임의로 죽인다는 의미인데.... ^^; signaling handler를 사용하면 SIGKILL을 받아서 제어할 수는 있지만, 이것은 임시방편일뿐이라고 생각되네요... 자세한 것은 모르겠으나 원천적인 원인을 분석하셔야 될듯.. ^^* (밤새야 되겠네요.. ^^)
힘내시구~ 화이팅하세요~
아 지금 다시 확인중인데.,..
SIGKILL이 아닐수도 --; 있겠습니다.
현상은 프로세스가 걍 죽어버리는 경우인데..
다른 시그날에 대해서는 모두 체크를 해보았는데
아니였습니다.
그래서 SIGKILL이라 생각한건데....
SIGKILL은 명시적으로 줄때만 발생한다는 글이 있는 걸로
보아서 아닌거 같구요..
모든 루틴의 종료부분에는 로그를 찍게 되어있는데..
그러지 않고 죽는다는건..비정상 종료인데..시그날 발생 말고
어떤 경우가 프로세스를 걍 죽어버리게 하는지 혹시
감이 오시는 분^^ 이나..기타 조언을 해주시길 기다리겠습니당.
에거..
SIGPIPE 아닐까요?
select나 poll 이 어떤 fd(소켓)가 ready 상태라고 알렸을 때, 상대방 쪽에서 해당 소켓를 닫았기 때문에 이를 알릴 수도 있습니다.
이럴 때, 이걸 제대로 검사하지 않고 그 소켓으로 그냥 write() 를 해 버린다면 SIGPIPE 가 발생합니다.
SIGPIPE: 상대방이 닫은 fd로의 쓰기가 수행할 때 발생 => 소켓, pipe 등에서 적용됨
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
poll을 사용해서 기다리는 중에 SIGKILL signal을 받았다는
poll을 사용해서 기다리는 중에 SIGKILL signal을 받았다는 것은 누군가가 임의로 죽인다는 의미인데.... ^^;
signaling handler를 사용하면 SIGKILL을 받아서 제어할 수는 있지만, 이것은 임시방편일뿐이라고 생각되네요... 자세한 것은 모르겠으나 원천적인 원인을 분석하셔야 될듯.. ^^* (밤새야 되겠네요.. ^^)
힘내시구~ 화이팅하세요~
확인중..
아 지금 다시 확인중인데.,..
SIGKILL이 아닐수도 --; 있겠습니다.
현상은 프로세스가 걍 죽어버리는 경우인데..
다른 시그날에 대해서는 모두 체크를 해보았는데
아니였습니다.
그래서 SIGKILL이라 생각한건데....
SIGKILL은 명시적으로 줄때만 발생한다는 글이 있는 걸로
보아서 아닌거 같구요..
모든 루틴의 종료부분에는 로그를 찍게 되어있는데..
그러지 않고 죽는다는건..비정상 종료인데..시그날 발생 말고
어떤 경우가 프로세스를 걍 죽어버리게 하는지 혹시
감이 오시는 분^^ 이나..기타 조언을 해주시길 기다리겠습니당.
에거..
SIGPIPE
SIGPIPE 아닐까요?
select나 poll 이 어떤 fd(소켓)가 ready 상태라고 알렸을 때,
상대방 쪽에서 해당 소켓를 닫았기 때문에 이를 알릴 수도 있습니다.
이럴 때, 이걸 제대로 검사하지 않고 그 소켓으로 그냥 write() 를 해 버린다면
SIGPIPE 가 발생합니다.
SIGPIPE: 상대방이 닫은 fd로의 쓰기가 수행할 때 발생
=> 소켓, pipe 등에서 적용됨
댓글 달기