[megoldva] Párhuzamos folyamat indítása és bevárása

Szeretnék úgy elindítani egy folyamatot egy szkriptből, hogy az a háttérben fusson; és mire a szkript egy későbbi pontjára jut el az értelmező, addigra lehetőség szerint lefusson. Ez a "lehetőség szerint" teszi érdekessé az ügyet; azt szeretném, hogy ha a szkript egy adott pontján be lehetne várni a háttérfolyamatot.

Tehát valami ilyesmi kellene; esetleg a másolás végeztét fájlméretek összehasonlításával ellenőrizzem? Vagy van általánosabb módszer?

cp gigafajl gigafajl2 &
...
... (egyéb időigényes műveletek)
...
while test VÉGZETT_E_MÁR_A_MÁSOLÁS ;do sleep 1; done
további utasítások

Hozzászólások

nem igazán vagyok nagy zsonglőr ebben a témában, de korábban valami ilyesmi megoldásom működött:


cp gigafajl gigafajl2 & pid=$!
...
... (egyéb időigényes műveletek)
...
wait $pid
további utasítások

If n is not given, all currently active child processes are waited for, and the return status is zero.

Szoval meg a pid(eket) sem kell hozza megjegyezni, eleg, ha siman wait-et irsz. Olyat viszont nem talaltam, hogy addig varjon, amig az egyik (legkorabban vegzo) process kiszall. Neha hasznos lenne, ha egyszerre fix mennyisegu nagyszamu processt kell lefuttatni. Mondjuk ez make -j n-nel korulmenyesen, de megoldhato.

--
Auto correct can go straight to He'll.