Jak nezombifikovat proces

Veros Kaplan xkaplan na informatics.muni.cz
Čtvrtek Říjen 8 11:56:33 CEST 1998


Mam problem, vyrobil jsem si nasledujici program:

main(){
     otevrit_soket
     while(1) {
          listen na ten soket
          newsock = accept ;
          if (fork == 0) {
               obsluz pozadavek
               exit (0);
          }
          waitpid (-1, NOHANG)
     }
}

   Ceka na pozadavek, kdyz prijde, naforkuje se a forkovana cast se
ukonci. Vsechno funguje, az na kosmetickou vadu. Ten naforkovany se
ukonci, ale zustane tam jako zombie, portoze skonci pozdeji nez
se zavola wait. Kdyby na neho wait cekal, tak se muze stat, ze prijde
pozadavek, ktery server neobslouzi. 

  Jak na to?

                           Preji krasny den
                                                 Veros
--
Veros Kaplan <xkaplan na informatics.muni.cz>     http://www.fi.muni.cz/~xkaplan
ISO-8859-2 compatible                    student Fakulty informatiky, MU Brno



Další informace o konferenci Linux