Program received signal SIGPIPE, Broken pipe. 0x000000323fac5e94 in send () from /lib64/tls/libc.so.6
프로그램 잘 돌아가다가 어느순간에 이런 메시지가 뜨면서 프로세스가 죽네요..
미치겠네요.
원론적인 이야기인지 모르겠지만... 상대방의 소켓이 이미 닫힌 다음에 통신을 시도하거나, 상대방 프로세스가 죽어버렸거나 할때 뜨는 에러입니다.
저도 예전에 그런 에러로 삽질한적이 있습니다만... 알고보니 inetd가 띄워주는 데몬 프로세스가 뜨자마자 죽어버리는 바람에 발생하는 현상이더군요.
디버깅할때 참고하시길...
---------------------------------------------- 한번뿐인 인생.... 미친듯이 살아보자! ----------------------------------------------
그리고 "Broken pipe"나 "SIGPIPE"로 검색하면 아실 수 있듯, 그냥 시그널을 무시하도록 처리하는 경우가 많습니다.
$PWD `date`
좀 길어서 제블로그에 예전에 써두었던글 링크 올려 봅니다. ^^;;;
http://nomoreid.egloos.com/1169779
Never Ending 삽질.
보통 프로그램을 작성하시다 보면 여러가지 시그널이 발생할 수 있습니다. 따라서 기본적으로 시그널 핸들러를 삽입하여 로그라도 남기는 경우가 많은데 지금 올리신 분도 그런 작업을 하시는게 좋을것 같네요...
작성하신 프로그램이 SIGPIPE에 의해 종료되지 않게 하려면 SIGPIPE 를 시그널 핸들러에서 처리하셔도 될것 같네요...
SIGPIPE는 소켓 통신할 때 많이 나오는 시그널입니다. 한번 처리하는 방법을 알아두시면 다음에 개발하실때 많은 도움이 될겁니다.
/*************************************************** * 가장 심플한 것이 가장 아름다운 것이다. ***************************************************/
그렇군요..정말 감사합니다...^_^
텍스트 포맷에 대한 자세한 정보
<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]
원론적인 이야기인지 모르겠지만... 상대방의 소켓이 이미 닫힌 다음에
원론적인 이야기인지 모르겠지만...
상대방의 소켓이 이미 닫힌 다음에 통신을 시도하거나,
상대방 프로세스가 죽어버렸거나 할때 뜨는 에러입니다.
저도 예전에 그런 에러로 삽질한적이 있습니다만...
알고보니 inetd가 띄워주는 데몬 프로세스가 뜨자마자 죽어버리는 바람에
발생하는 현상이더군요.
디버깅할때 참고하시길...
----------------------------------------------
한번뿐인 인생....
미친듯이 살아보자!
----------------------------------------------
그리고 "Broken pipe"나 "SIGPIPE"로 검색하면 아실 수
그리고 "Broken pipe"나 "SIGPIPE"로 검색하면 아실 수 있듯, 그냥 시그널을 무시하도록 처리하는 경우가 많습니다.
$PWD `date`
Broken pipe Error 대처법.
좀 길어서 제블로그에 예전에 써두었던글 링크 올려 봅니다. ^^;;;
http://nomoreid.egloos.com/1169779
Never Ending 삽질.
보통 프로그램을 작성하시다 보면 여러가지 시그널이 발생할 수 있습니다.
보통 프로그램을 작성하시다 보면 여러가지 시그널이 발생할 수 있습니다.
따라서 기본적으로 시그널 핸들러를 삽입하여 로그라도 남기는 경우가 많은데 지금 올리신 분도 그런 작업을 하시는게 좋을것 같네요...
작성하신 프로그램이 SIGPIPE에 의해 종료되지 않게 하려면 SIGPIPE 를 시그널 핸들러에서 처리하셔도 될것 같네요...
SIGPIPE는 소켓 통신할 때 많이 나오는 시그널입니다. 한번 처리하는 방법을 알아두시면 다음에 개발하실때 많은 도움이 될겁니다.
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
오오 감사합니다.
그렇군요..정말 감사합니다...^_^
댓글 달기