Introducción a los scripts de shell de subprocesos múltiples en el sistema Linux

  

El uso de scripts de shell en Linux puede implementar fácilmente operaciones de subprocesos múltiples, no solo puede ejecutar fondos de subprocesos múltiples en scripts de shell, sino que también controla el número de subprocesos múltiples. Aquí hay un vistazo a la secuencia de comandos shell multi-hilo para Linux.

En bash, que corren (&) por el fondo multi-hilo.

para ((i = 1; i "== pares; i ++))

do

mongo = " mongo_00 $ i "

acmeair_web =  quo; acmeair_web_00 $ i "

{

ejecución de docker --name $ mongo -d -p $ port_m: 27017 mymongodb

docker run -d -p $ port: 9080 --name $ acmeair_web --link $ {mongo}: mongo acmeair /web

} &

((port ++))

((port_m ++)) < Br>

hecho

esperar

Hemos agregado {} ¶ que se pueda ejecutar en segundo plano en {}, que es equivalente a los pares ejecutados al mismo tiempo, la espera es Espera a que terminen.

Arriba, todos somos incontrolables por el número de concurrentes, la siguiente implementación es controlable.

tmp_fifofile = " /tmp /$$. fifo "

mkfifo $ tmp_fifofile # Crea un nuevo archivo de tipo fifo

exec 6 "" $ tmp_fifofile #point fd6 Tipo Fifo

rm $ tmp_fifofile

thread = 15 # Defina el número de subprocesos aquí

para ((i = 0; i "$ thread; i ++)); do < Br>

echo

hecho》 &6 # De hecho, ponga $ retorno de carro de hilo en fd6

para ((i = 0; i "50; i ++ )); do # 循环 50 veces

lee -u6 # Un comando de lectura -u6 se ejecuta una vez, luego se resta un retorno de carro de fd6 y luego se ejecuta

# fd6 Cuando no hay retorno de carro, se detiene aquí, implementando así el control del número de hilos

{

{

ejecución de la ventana acoplable. . . Mongodb

ejecutar ventana acoplable. . . Acmeair /web

} &&{

echo " subprocess está terminado y "

} | |  {

echo " error "

}

echo》 &6 # Cuando el proceso finalice, agregue un retorno de carro a fd6, es decir, invente El que está leído-u6 menos

} &

hecho

espera # espera que todos los procesos secundarios en segundo plano finalicen

exec 6》 &- # 关闭 fd6

exit 01

Lo anterior es un script de shell de subprocesos múltiples para sistemas Linux. Por supuesto, ejecutar un script de shell de subprocesos múltiples es solo la base. También puede utilizar los subprocesos múltiples para programar. El método específico puede referirse a: Cómo implementar la programación de subprocesos múltiples de shell en Linux.

Copyright © Conocimiento de Windows All Rights Reserved