[ Free_Sex @ 25.03.2004. 23:03 ] @
Kako mogu da proverim da li je child proces zavrsio svoj posao ?
Kolik osam ja skapirao iz knjige to se radi sa :
kill(0 => $pid);

Stime sto on cak i kada child zavrsi sa exit 1; vraca 1.

On 0 vraca tek kada ja sacekam child proces sa waitpid $pid,0;

A meni ustvari stanje childa bas i treba kako bih znao da li je zavrsio posao
kako bih mogao da ga "sacekam" tj. waitpid ....

Pomoc .... ?
[ sspasic @ 28.03.2004. 13:31 ] @
Code:

use POSIX ":sys_wait_h";

my $pstatus = waitpid($pid, WNOHANG);

Zbog WNOHANG waitpid će vratiti 0 ako proces još uvek radi. Ako vrati vrednost različitu od nule proces se završio i povratna vrednost je kao da nisi koristio WNOHANG.

Pogledaj i:

perldoc -f waitpid
man waitpid
perldoc -f kill
man 2 kill

Obrati pažnju na to da si kill verovatno skapirao pogrešno.
[ Free_Sex @ 28.03.2004. 16:58 ] @
Da izgleda da sam kill skapirao pogresno.... provalio sam to jos odavno. I znao sam da je nesto u vezi sa ovim WNOHANG samo sto nisam uspeo da pronadjem nesto vise o tome. Ustvari ja sam pokusavao sa waitpid -1, WNOHANG to valjda vraca sve procese ili tako nesto.

Inace bas sam u jednom testiranju video neke promene iz 0 u -1 samo sto nisam povezao o cemu se radi :)

Hvala ! Taman sam mislio da sherujem memoriju :)

ps Man i slicno na win98 hm .... Ma i onako cu da instaliram linux uskoro :)