Tengo algo de código Perl que ejecuta un script de shell para múltiples parámetros, para simplificar, sólo voy a asumir que tengo código que se parece a esto:¿Cómo puedo hacer que Perl espere a que los procesos secundarios se inicien en segundo plano con system()?
for $p (@a){
system("/path/to/file.sh $p&");
}
me gustaría hacer algunas cosas más después eso, pero no puedo encontrar una manera de esperar a que terminen todos los procesos hijos antes de continuar.
Convertir el código para usar fork() sería difícil. ¿No hay una manera más fácil?
¿Necesita el código de retorno real de file.sh? ¿Puedes cambiar la secuencia de comandos para que se escriba en un archivo cuando se complete? – mkb
¿Por qué sería difícil convertir el código en fork? Ocultar todos los detalles en una subrutina. Incluso podría redefinir el sistema() para llamar a su nueva subrutina en su lugar. –
Probablemente voy a dividir esta parte en una secuencia de comandos separada que hace la bifurcación, y llamar a eso desde la llamada al sistema ... –