쓰레드 환경에서 signal

leilei의 이미지

쓰레드폴로 구성된 서버에 SIGCHLD와 SIGPIPE를 처리하기 위해

    signal(SIGCHLD, SIG_IGN);
    signal(SIGPIPE, SIG_IGN);               // 닫힌 소켓에 쓰려고 시도..

이렇게 되어 있습니다.
OS가 솔라리스이기 땜시 sigaction으로 바꿔 줄려고 하는데요..
SIGCHLD는
sa_mask = SA_NOCLDWAIT;
이렇게 해 주면 될것 같은데..
SIGPIPE는 어떻게 해 줘야 SIG_IGN이 되는지 궁금합니다..

liongo의 이미지

    signal(SIGCHLD, SIG_IGN); 
    signal(SIGPIPE, SIG_IGN); 

이코드가 솔라리스에서 먹지 않는다는건가요?

조금 질문이 애매해서..

Quote:

OS가 솔라리스이기 땜시 sigaction으로 바꿔 줄려고 하는데요..

이부분이 조금 해깔리게 하네요..

솔라시스에서 작업한지좀 되서.. 가물거리는건지 몰라도..

솔라리스에서 위코드가 먹히는걸로 알고있습니다만..

sigaction을 쓰시려는 질문의 의도랑 틀린 이야기라면 죄송합니다..

' 형식이 내용을 규정한다. '

leilei의 이미지

한참 지나서 답글을 다네요..
처음에 글 올리고 다들 무관심이셔서 저도 관심 끊었던 이야기라.. :cry:

제 질문은 linux와 다르게 한번 signal이 발생되어서 핸들러 처리가 되어지면
핸들러 등록이 풀리기(?) 때문에 드린 질문이었습니다.
그러니까.. 처음 한번만 핸들러가 실행되겠죠..
모 핸들러 속에 다시 등록을 하는게 올바른 방법인지 꽁수인지는
모르겠지만.. 당장 급하게 이런 방법으로 사용하고는 있습니다.. :oops:

jinyeong의 이미지

sigaction이 아니라 signal이 그렇다는 말씀이시지요?

signal 함수와 같은 초기 System V 계열의 signal 구현은,

signal 이 발생한 경우, signal handler를 default로 초기화 합니다.

signal 함수를 계속 사용하고 싶으시다면,

말씀하신대로 handler를 매번 새로 등록해주면 됩니다.

I thought what I'd do was,
I'd pretend I was one of those deaf-mutes.. or should I?

dreampia의 이미지

sigset(SIGCHLD, SIG_IGN); 
sigset(SIGPIPE, SIG_IGN); 

하시면 됩니다.

>/dev/null 2>&1

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.