Čekání na konec procesů v shellu

Vancl Miroslav (QRIS) Miroslav.Vancl na qris.cz
Úterý Leden 11 13:01:16 CET 2005


Zdravím,

mám tady takový oříšek:

Potřeboval bych ve skriptu spustit N paralelních procesů a čekat až některý
(kterýkoliv jeden) z nich skončí.
Nepodařilo se mi najít konstrukci, která by to umožnila (ale možná jenom
špatně čtu dokumentaci k shellu). Vypadá to, že buď můžu čekat na skončení
všech subprocesů, nebo jednoho konkrétního, ne na kterýkoliv.
Praktické použití: Například když chci zpracovat (např. zkomprimovat) na
N-procesorovém stroji množinu souborů, může být výhodné se snažit jich
zpracovávat právě N paralelně. Jak to ale bez složitých obezliček udělat v
shellu, to skutečně netuším. Složitou obezličkou mám na mysli rozjet N
subshellů, které budou v cyklu odebírat z fronty (třeba roura od hlavního
shellu) jména souborů ke zpracování (zkomprimování). Musí se asi vyřešit
synchronizace přístupu k rouře a taky bych rád centrálně zpracovával
návratové kódy z těch jednotlivých zpracování...

Neporadí mi někdo ?

M. Vancl


Další informace o konferenci Linux