Ich habe einige Perl-Code, der ein Shell-Skript für mehrere Parameter ausgeführt wird, zu vereinfachen, nehme an, ich nur, dass ich Code, der wie folgt aussieht:Wie kann ich warten, dass Perl-Prozesse im Hintergrund mit system() gestartet werden?
for $p (@a){
system("/path/to/file.sh $p&");
}
Ich würde gerne ein paar mehr Dinge tun, nachdem das, aber ich kann keinen Weg finden, darauf zu warten, dass alle Kindprozesse beendet sind, bevor ich fortfahre.
Umwandlung des Codes zur Verwendung von fork() wäre schwierig. Gibt es keinen einfacheren Weg?
Benötigen Sie den tatsächlichen Rückgabecode von file.sh? Können Sie das Skript so ändern, dass es nach Abschluss in eine Datei schreibt? – mkb
Warum ist es schwierig, den Code in fork zu konvertieren? Verstecken Sie alle Details in einer Subroutine. Sie könnten sogar system() neu definieren, um stattdessen Ihre neue Subroutine aufzurufen. –
Ich werde diesen Teil wahrscheinlich in ein separates Skript teilen, das die Verzweigung ausführt, und das vom Systemaufruf aufrufen ... –