Existen varias formas de ejecutar SCRIPTS BASH en paralelo. Útil para ahorrar tiempo o por la razón que sea. Se debe tener presente que esto puede estar limitado por el sistema operativo y los recursos disponibles del sistema, por lo tanto se debe probar y diseñar cuidadosamente.
Una de estas es ejecutar varios comando, utilizando subprocesos en segundo plano.
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash # lanzamos el primer comando en segundo plano comando1 & pid1=$! # Lanzamos el segundo comando en segundo plano comando2 & pid2=$! # Se espera que los subprocesos terminen wait $pid1 wait $pid2 # Continuamos con el SCRIPT principal echo "Subprocesos terminados, continua la ejecución” |
Otra es utilizando el comando XARGS, una de sus características es su capacidad de procesar en paralelo, con la opción -P le indica el número de procesos que se ejecutaran en paralelo.
1 2 3 4 5 6 |
# Ejemplo 1: Imprimir números en paralelo seq 1 10 | xargs -P 4 -I {} bash -c 'echo {}' # Ejemplo 2: Ejecutar comandos en paralelo cat urls.txt | xargs -P 4 -I {} bash -c 'curl -s {} > {}.html' # Ejemplo 3: Procesamiento en paralelo con función personalizada cat archivos.txt | xargs -P 4 -I {} bash -c 'mi_funcion {}' |