fork(), execve(), ...

Martin Douda martin na douda.net
Středa Duben 11 20:14:32 CEST 2001



Problem je IMHO v tom, ze v okamziku, kdy skonci dite A, tak se ditete B
ujme init, takze jeho parent bude pid 1, takze pokud nestihnete projit
procesy div nez a skonci, tak mate smulu a nenajdete ho.

Jako nejschudnejsi reseni bych tady asi videl LD_PRELOAD a dodat knihovnu,
ktera predela fork() tak, ze preda potrebnou informaci o pidu ditete B.

		Martin




On Wed, 11 Apr 2001, Jirka Kosina wrote:

> Date: Wed, 11 Apr 2001 14:19:59 +0200 (CEST)
> From: Jirka Kosina <jikos na jikos.cz>
> Reply-To: linux na linux.cz
> To: linux na linux.cz
> Subject: Re: fork(), execve(), ...
> 
> Ahoj,
> 
> > > Ale vzdyt v promenne pid mate pid toho potomka. Tedy staci z wrapperu
> > > hlidat, az prestane existovat proces s pid, ktery vratil ten fork (doufat,
> > > ze se netrefite do doby, kdy vznikne dalsi proces se stejnym pid - ale i
> > > to by se asi dalo osetrit), a pak provest ukoncovaci akce wrapperu.
> >   To jo, v pid mam pid toho ditete (A), ale A vytvori dalsi dite (B), ktere
> > uz je v druhe urovni a jelikoz A zjevne dela signal(SIGCLD,SIG_IGN) tak se
> > to dite (B) "odpouta" od ditete (A).
> 
> Omlouvam se, predtim jsem si to spatne precetl ;)
> 
> Ale stejne - v promenne pid mate pid predka, a u kazdeho forknuteho
> potomka muzete zjistit pid predka. Tedy pouze staci najit proces, ktery ma
> jako pid predka pid toho, co mate v promenne pid. 
> 
> 

-- 
--------------------------------------------------------------------------------
                              Martin "MaD" Douda
WEB: http://martin.douda.net/   PHONE:+420603752779   ICQ# 86467013
EMAIL: <martin na douda.net>, <mad na gate.mobil.cz> (160 characters only)
PGP:ID=0x6FE43023 Fingerprint:E495 11DA EF6E 0DD6 965A 54F3 888E CC9E 6FE4 3023
--------------------------------------------------------------------------------
Hardware: The parts of a computer system that can be kicked.



Další informace o konferenci Linux