fork(), execve(), ...

Vaclav Ovsik Vaclav.Ovsik na i.cz
Čtvrtek Duben 12 12:09:09 CEST 2001


On Wed, Apr 11, 2001 at 12:37:03PM +0200, Robert Vojta wrote:
>   no a tady cekam na to, az se ukonci puvodni program, resp. moje dite,
> jenze to se ukonci jeste driv nez dite (B) puvodniho programu. Potrebuju
> po ukonceni behu ditete (B) provest nejakou akci (zavisla na dokonceni toho
> ditete B) a az potom ukoncit wrapper. Napada nekoho neco jak na to? Spis
> bych si tipl, ze to nejak normalne nepujde ... 

Tedy ne ze bych mel konkretni reseni, ale zkousel jste
promyslet, jestli by to neslo resit pres process groupy?

Napriklad muzete testovat, jestli bezi nejaky proces z dane process
groupy pomoci kill(0,-PGRP). Musel byste asi ten program co spustite
ze sveho wraperu ucinit leaderem te groupy a pak
cekat ve smycce (se sleep treba 1 sec) a pomoci kill koukat, jestli
jeste nektery z procesu bezi.
Puvodne jsem myslel, ze by slo cekat pomoci waitpid na ukonceni
nektereho potomka (zase uvedenim zaporneho PGRP), ale protoze
tam dojde k tomu ukonceni a bezici dite si privlastni init,
uz nelze waitpid pouzit (vrati se, jako ze uz zadne dite neni).

Ale dite i kdyz je vlastneno initem je stale v puvodni process
groupe. A ten test pomoci kill funguje, to jsem zkousel.

Nejaky expert pres procesy jiste vymysli neco lepsiho.
(koukat na pgrp muzete napr.  'ps -O pgrp')

-- 
	Vaclav Ovsik		email: Vaclav.Ovsik na i.cz
	ICZ a.s.		phone: +420 19 7488511
				fax:   +420 19 7488506



Další informace o konferenci Linux