Programovani - fork, exec a spol.
David Sauer
davids na iol.cz
Pátek Leden 8 00:20:33 CET 1999
>>>> "Petr" == Petr Novotny <Petr.Novotny na antek.cz> writes:
>> Myslim, ze jedina moznost je, aby parent provedl 'signal(SIGCLD,
>> SIG_IGN)'. Tim oznami, ze nema o exit status potomka zajem. Pokud
>> to nemuze udelat, jak moc vadi ty zombie ?
Petr> Krome toho, ze jsou neesteticke :-) je hlavni problem v tom, ze by
Petr> pri kazde POP3 autentifikaci vznikl jeden.
Spise jde o to, jak takovy autentizacni proces bezi. Pokud se startuje
pokazde znovu, detske zombie (fuj, to je slovo) by nevadily. Pokud
bezi porad, tak by zombie asi zaplnovaly tabulku procesu, az by ji
zaplnily...
Jinak, signal(..) lze preci provest v odforkovanem procesu(nebo
ne?), asi takto:
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
int main()
{
// nedela zadne kontroly
pid_t pid = fork();
if( pid == 0 )
{ // jsem dite
if( fork() == 0 )
execl("/bin/ls", "ls", NULL);
else
exit(0);
}
else
{ // jsem rodic
int status;
int options = 0;
waitpid( pid, &status, options );
while(1);
}
return 0;
}
--
* David Sauer, student of Czech Technical University
* electronic mail: davids na iol.cz (mime compatible)
Další informace o konferenci Linux