fork()관련해서 질문입니다ㅡ

bass1ife의 이미지

멀티 프로세스 방식으로 소켓을 사용하는 프로그램을 만드는 중인데
while(1)을 잘못 사용했더니 무한 fork가 나버리네요...ㅡㅡ;;
ctrl-c로 일단 종료는 시켰는데
이미 생겨버린 무수한 프로세스들을 다 죽일 방법이 없어서
그냥 재부팅 해버렸습니다....ㅡㅡ;;;
재부팅 말고 컴퓨터를 정상적으로 회복시킬 다른 방법이 있으면 알려주세요~

kukuman의 이미지

killall 로 죽이세요~ ^^

Be at a right place at a right time...

bass1ife의 이미지

fork(): resource temporary unavailable

이 메세지가 뜨기 전에 해야겠군요...감사합니다~

젠투, 젠투, 그리고 젠투.

GENIUS의 이미지

fork() 로 새성된 프로세서는 자기가 할일을 다하면 exit(); 죽여 버리세요.
예를 들어 여러개의 속켓이 어떤 대답을 요구했을때 응답을 fork() 하고 write(); 하고 나서 exit(); 하세요.

그래야 여러개의 프로세서 좀비가 되는 것을 막을수 있습니다.

....

그냥 참고로 ...

리눅스 네트웍 개발 (FA) /유비쿼터스 네트웍 하드웨어 개발 프로젝트 진행/인터넷을 통한 원격제어/
리눅스 베이스 FA 구현/초소형 무선랜 모듈개발 진행중/리눅스 웹 통합시스템 구축

nthroot의 이미지

Q. 자식 프로세스가 스스로 exit()하면 좀비가 안되나요?.
(모르는 부분이라서 위에글 보고 질문합니다.)

그리고 좀비가 많이 생겼을 경우는 최상위 프로세스 하나만 죽이면 나머지는 다 죽습니다.(fork된 프로세스들의 부모 프로세스) 부모 프로세스가 죽었을 경우에는 자식들은 init에 의해 관리되게 됩니다.

자식프로세스에 대해서 대해서 종료는 wait, waitpid 함수들을 찾아보시면 도움이 될것 같고 자식 프로세스 종료에 대한 처리가 필요하면 signal(SIGCLD,...)를 찾아보시면 됩니다. 무시하고자 할 경우는 signal(SIGCLD,SIG_IGN)에 대해서 보시구요.

------식은이 처------
길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.

hwandori의 이미지

exit를 수행하면 task_struct 구조체를 제외한 나머지 자료구조를 모두 해제하고 TASK_ZOMBIE상태로 상태를 바꾸는것으로 알고 있습니다.

jinyeong의 이미지

child는 필요한 일이 끝나면 exit를 반드시 해줘야 하고,

parent는 반드시 child의 exit 상태를 체크하고 zombie 상태를 해제해 줘야 합니다. (waitpid 등)

child의 exit은 zombie 상태 때문이 아니라, child에 할당된 그 외의 리소스를 해제하기 위해서 필요합니다.

zombie는 child는 exit을 했지만, parent가 이를 처리하기 전인 상태를 말합니다.

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

댓글 달기

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