bash: jak zjistit PID prvniho procesu v pipeline

Michal Ludvig michal-linux na logix.cz
Pondělí Červen 17 13:30:42 CEST 2002


Jindrich Makovicka wrote:
> nejako nemuzu hnout s nasledujicim: mam shellovy skript obsahujici 
> pipeline, ktera se pousti na pozadi
> 
> command1 | command2 | ... | commandN &
> 
> $! mi vrati jenom PID odpovidajici commandN, jenze ja bych potreboval 
> nekdy pozdejc poslat signal pro command1. Existuje nejake jednoduche 
> reseni?

Bud muzete premluvit command1 aby svuj PID poslal na nejaky obskurni 
descriptor (treba 3) a ten pak chytit, pripadne aby ho zapsal do 
nejakeho souboru (nejlepe takoveho, ktery mu urcite.
Pokud command1 upravovat nemuzete (coz bych se ve veku open source ale 
divil :-) tak muzete pouzit named-pipe:
mkfifo roura
command1 > roura &
PID=$!
command2 < roura | ... | commandN &
kill $PID
To by mohlo byt vicemene ekvivalentni puvodnimu zapisu...

Michal Ludvig



Další informace o konferenci Linux