Azt szeretnem megkerdezni, hogy a popen-nel inditott processeket (es azok childjait) hogyan lehet killelni?
Elore is koszonok minden segitseget!
Hozzászólások
Attól függ, h mik azok a processzek, amiker popen()-nel akarsz indítani, és h milyen irányú pipe-ra van szükség.
Ha a gyerek programokat te írod és a pipe a szülő processz felé irányul, akkor a gyerek processz azzal kezdhetné futását, h a pid-jét kiírja stdout-ra, a szülő meg beolvasná a popen() által visszaadott fd-ről.
Ha a pipe a gyerek felé irányul és a szülő programot te írod, akkor meg írjál egy saját popen()-szerű függvényt, ami nem csak a pipe fd-jét adja vissza, hanem a gyerek pid-jét is.
Hozzászólások
Attól függ, h mik azok a processzek, amiker popen()-nel akarsz indítani, és h milyen irányú pipe-ra van szükség.
Ha a gyerek programokat te írod és a pipe a szülő processz felé irányul, akkor a gyerek processz azzal kezdhetné futását, h a pid-jét kiírja stdout-ra, a szülő meg beolvasná a popen() által visszaadott fd-ről.
Ha a pipe a gyerek felé irányul és a szülő programot te írod, akkor meg írjál egy saját popen()-szerű függvényt, ami nem csak a pipe fd-jét adja vissza, hanem a gyerek pid-jét is.
A pipe a szulo fele iranyul, de nem en irom a gyerek programokat.
Valoszinuleg egy pid-et is visszaado popen lesz ebbol, ahogy azt Te is tanacsoltad.
Meg az erdekelne, hogy egy process childjait hogyan tudom lekerni?
AFAIK sehogy, neked kell majd eltárolni valamilyen formában a fork() által visszaadott pid-eket.
A gond az, hogy ezeket a forkolasokat nem az en programom csinalja, ezert nem tudom eltarolni. pstree hogy csinalja?
/proc-ban végigolvassa az összes processzhez tartozó bejegyzéseket, aztán valahogy kitalálja
Gondolom a statusban szereplo PPid-bol. Akkor meglehet en is igy teszek majd.
Koszonom a segitseget!
Egyebkent megneztem pstree-t es ott ps parancsot hasznal.
En is kovettem ezt a megoldast egy "ps -eo pid,ppid"-del.