좀비 프로세스 만들지 않기...

i_wish_awk_sed_perl의 이미지

fork을 이용해 자식 프로세스를 여러개 만들었습니다. 그리고 자식 프로세스가 종료 되기 전에 부모 프로세스를 죽여야 할때...그냥 죽이게 되면 자식 프로세스들은 init 의 자식으로 입양(?) 되는걸로 알고 있습니다.

부모 프로세스를 죽이면 부모 프로세스가 소유한(생성한) 자식 프로세스들을 한방에 모두 죽여 버리고 자신도 죽는 방법이 있을지요?

ironiris의 이미지

자식프로세스에서 수시로 부모프로세스를 검사해서 부모가 없으면 동반자살하게 만드는 것은 어떨런지요? ^^;

무한포옹의 이미지

ironiris wrote:
자식프로세스에서 수시로 부모프로세스를 검사해서 부모가 없으면 동반자살하게 만드는 것은 어떨런지요? ^^;

가정파괴...... :twisted:

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===

Bini의 이미지

i_wish_awk_sed_perl wrote:
fork을 이용해 자식 프로세스를 여러개 만들었습니다. 그리고 자식 프로세스가 종료 되기 전에 부모 프로세스를 죽여야 할때...그냥 죽이게 되면 자식 프로세스들은 init 의 자식으로 입양(?) 되는걸로 알고 있습니다.

부모 프로세스를 죽이면 부모 프로세스가 소유한(생성한) 자식 프로세스들을 한방에 모두 죽여 버리고 자신도 죽는 방법이 있을지요?

ironiris wrote:
자식프로세스에서 수시로 부모프로세스를 검사해서 부모가 없으면 동반자살하게 만드는 것은 어떨런지요? ^^;

가만히 읽어보면 참 무서운글이네요...
상황을 모르는 사람이 누가 이런소리를 하는걸 들으면 경찰에 신고를 할것같은데 ^^;

맹고이의 이미지

자식 pid 목록을 가지고 있다가 시그널에서 처리해도 되지 않을까요.

근데 부모가 갑자기 죽어버리거나, SIGKILL을 받으면... :?

jinyeong의 이미지

init에게 넘기면 무슨 문제가 있나요?

주제와 내용이 잘 맞지 않는 것 같기도 합니다만..;;

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

cdpark의 이미지

입양된 자식은 좀비가 아닙니다.

yundream의 이미지

i_wish_awk_sed_perl wrote:
fork을 이용해 자식 프로세스를 여러개 만들었습니다. 그리고 자식 프로세스가 종료 되기 전에 부모 프로세스를 죽여야 할때...그냥 죽이게 되면 자식 프로세스들은 init 의 자식으로 입양(?) 되는걸로 알고 있습니다.

부모 프로세스를 죽이면 부모 프로세스가 소유한(생성한) 자식 프로세스들을 한방에 모두 죽여 버리고 자신도 죽는 방법이 있을지요?


1. 부모가 사라진 자식 프로세스는 좀비가 아니구요. 좀비는 종료된 자식 프로세스가 부모측의 wait()를 통해서 아직 정리되지 않은 상태입니다.

2. 부모가 죽을 때는 대부분 시그널을 받고 죽을 거니까.. 시그널을 받았을 때
그룹의 모든 자식 프로세스에게 시그널을 보내도록 시그널 핸들러를 하나 등록하면 되겠군요.

kill 시스템호출을 이용하면 되구요. PID를 0으로 하면 그룹의 모든 프로세스에게 시그널을 보낼 수 있습니다. 자세한 내용은 kill(2)를 참고하시길

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.