system() 함수 질문입니다.

park3250의 이미지

안녕하세요
포크 하여 생성되는 데몬이 있는데요

부모 프로세스에서 SIGCHILD 시그널 등을 등록하는데요

포그된 자식 프로세스에서 루프돌면서 system() 함수를 호출 하는데

부모 프로세스에서 SIGCHILD 시그널을 감지 할 때가 있는데요
감지될때 waitpid 리턴되는 pid가 데몬으로 올라간 pid는 아니더라구요
system() 함수에서 생성된 fork된 pid 일거같은데..

system() 함수 내에서 종료 될때 SIGCHILD 시그널이 발생하는건가요?

시그널 처리 주석처리 하면 정상작동합니다..

system() 함수와 시그널 처리를 어떤식으로 구현해야 되는걸까요?
답변 부탁드립니다...

chocokeki의 이미지

그냥 지나가다가...... 혹시 그거 쉘꺼 아닌가요

park3250의 이미지

포크 된 프로세스가 system() 함수를 호출하는데 system() 함수에서 fork 된 SIGCHLD를
SIGCHLD 시그널 등록된 부모프로세스에서 캐치하는거 같아요..

그래서 그부분을 주석처리 하면 잘 되더라구요
그런데 저 시그널은 처리를 해야 하는거여서...
어떻게 해야 할지 잘 모르겟네요ㅠ

 의 이미지

부모 프로세스에서 SIGCHLD를 캐치하는 게 확실한가요?

부모 프로세스에서 SIGCHLD handler를 등록한 뒤 fork하면,
자식 프로세스도 똑같은 signal handler를 가지게 됩니다.
제 생각에는 (system 함수를 호출하는) 자식 프로세스에서 SIGCHLD를 핸들링하고 있는 것 같은데요.

fork 이후 자식 프로세스에서 SIGCHLD handler 등록을 해제해보시는 건 어떨까 싶습니다.

park3250의 이미지

포크한뒤 부모, 자식 프로세스 각각 시그널을 등록하는데

부모, 자식 프로세스 모두 SIGCHLD를 시그널 등록 햇네요..
자식 프로세스에서는 SIGCHLD를 하지 않는게 맞는거겟죠?

SIGCHLD 시그널 등록한 목적이 부모 프로세스에서 자식 프로세스가 죽는걸
감지해서 다시 실행해주는 목적이니...

댓글 달기

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]. PHP 소스 코드는 다음과 같이 사용할 수 있습니다: <?php ... ?> 또는 <% ... %>.
  • 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]. PHP 소스 코드는 다음과 같이 사용할 수 있습니다: <?php ... ?> 또는 <% ... %>.
  • 사용할 수 있는 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]. PHP 소스 코드는 다음과 같이 사용할 수 있습니다: <?php ... ?> 또는 <% ... %>.
  • 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]. PHP 소스 코드는 다음과 같이 사용할 수 있습니다: <?php ... ?> 또는 <% ... %>.
  • 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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.