Am o problema cu un script bash. Ce incerc sa fac: intr-o bucla "while
read file" citesc valori, si pentru fiecare execut o serie de 3
scripturi in background. Fiecare script contine citeva comenzi, unele
grupate in pipeline, altele succesive. Problema mea este ca vreau ca
tot ce a fost lansat sa fie omorit inainte de a se trece la bucla
urmatoare. Si nu se intimpla asa, cele trei scripturi sint omorite,
dar comenzile lansate de ele nu, si ma trezesc cu mesaje de eroare de
la bucla 2 aparind mai tirziu, in timpul buclei 10 samd.
Iata programul in continuare. Citeva precizari:
* script1 captureaza ce se intimpla cu script2
* script2 face treaba de baza
* script3 este un "watchdog", contine sleep n;kill -9 $P2pid
pentru ca script2 nu are optiune de timeout
--------------------------------------------------
#!/bin/sh
while read valoare
do
echo "--- $valoare ---"
./script1 $valoare & P1pid=$!
./script2 $valoare & P2pid=$!
./script3 $P2pid & P3pid=$!
wait $P2pid
kill -9 $P3pid
sleep 1 # sometimes P1 has a bit more output
kill -9 $P1pid
done < valori.txt
--------------------------------------------------
Am incercat diverse chestii, inclusiv sa pun wait la sfirsitul
scripturilor, dar invariabil se trece la bucla urmatoare si ramin cu
comenzile din scripturi agatate in memorie.
-- GZ
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
unsubscribe from this list.