kde se berou zombie

Robert Vojta vojta na ipex.cz
Středa Červen 6 09:28:30 CEST 2001


> nekdy se mi na jednom ze serveru objevi za par dnu zemrele procesy -
> zombie. Napr. nedavno po 4 dnech uptimeu
> serveru jsem vypozoroval 4 zombie. Nevite nekdo kde se berou, proc a jak
> vznikaji?

  Treba tak, ze proces vytvori deti, nezajima ho jejich stav ukonceni a
opomene treba zavolat signal(SIGCLD,SIG_IGN), dite se ukonceni a je z neho
razem zombie ... Muzete se podivat na tento priklad ...

...
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>

int
main(int argc, char *argv[])
{
    int childs = 0;

    /* signal(SIGCLD,SIG_IGN); */

    while (++childs <= 20) {
        switch (fork()) 
        {
            case 0:
                printf("Dite %d. konci ...\n", childs);
                return 0;   
    
            case -1:
                printf("fork() chyba\n");
                exit(-1);

            default:
                break;
        }
    }
    printf("Cekam 20 vterin a muzete se podivat na 20 zombiku\n");
    sleep(20);
    return 0;
}
...

  Vemte, zkompilujte `gcc -o zombie zombie.c`, pustte `./zombie` a kdyz si
date `ps ax | grep zombie` a uvidite tech 20 avizovanych zombiku ...

...
 2777 pts/1    Z      0:00 [zombie <defunct>]
...

  Pokud odkomentujete /* signal(SIGCLD,SIG_IGN); */, zkompilujete a pustite
to znovu, zadne zombiky neuvidite ...

> Mohou nejak ovlivnit cinnost serveru?

  Zaplni tabulku procesu ...

  .R.V.

-- 
   _
  |-|  __      Robert Vojta <vojta-at-ipex.cz>          -= Oo.oO =-
  |=| [Ll]     IPEX, s.r.o.
  "^" ====`o
------------- další část ---------------
A non-text attachment was scrubbed...
Name: [žádný popis není k dispozici]
Type: application/pgp-signature
Size: 240 bytes
Desc: [žádný popis není k dispozici]
URL: <http://www.linux.cz/pipermail/linux/attachments/20010606/f535a588/attachment.sig>


Další informace o konferenci Linux