mam jakiś kod Perl, który wykonuje skrypt do wielu parametrów, w celu uproszczenia, będę po prostu założyć, że mam kodu, który wygląda tak:Jak sprawić, by Perl czekał, aż procesy potomne rozpoczną się w tle z systemem()?
for $p (@a){
system("/path/to/file.sh $p&");
}
Chciałbym zrobić kilka innych rzeczy po to, ale nie mogę znaleźć sposobu na poczekanie na zakończenie wszystkich procesów potomnych.
Konwersja kodu na fork() byłaby trudna. Czy nie ma łatwiejszego sposobu?
Czy potrzebny jest rzeczywisty kod powrotu z pliku .sh? Czy możesz zmienić skrypt tak, aby po zakończeniu był zapisywany do pliku? – mkb
Dlaczego konwersja kodu na widelec byłaby trudna? Ukryj wszystkie szczegóły w podprogramie. Można nawet przedefiniować system(), aby zamiast tego wywołać nowy podprogram. –
Prawdopodobnie po prostu podzielę tę część na osobny skrypt, który wykonuje rozwidlenie, i zadzwonię do tego z wywołania systemowego ... –