Ho qualche codice Perl che esegue uno script di shell per più parametri, per semplificare, mi limiterò a supporre che Ho codice che assomiglia a questo:Come posso fare in modo che Perl aspetti i processi figli avviati in background con system()?
for $p (@a){
system("/path/to/file.sh $p&");
}
mi piacerebbe fare alcune più cose dopo questo, ma non riesco a trovare un modo per attendere che tutti i processi figli finiscano prima di continuare.
Conversione del codice per utilizzare fork() sarebbe difficile. Non c'è un modo più semplice?
Richiede il codice di ritorno effettivo da file.sh? Puoi cambiare lo script in modo che scriva su un file una volta completato? – mkb
Perché convertire il codice in fork è difficile? Nascondi tutti i dettagli in una subroutine. Si potrebbe anche ridefinire system() per chiamare invece la nuova subroutine. –
Probabilmente mi limiterò a dividere questa parte in uno script separato che esegue la foratura e chiamarla dalla chiamata di sistema ... –