Comando de espera de Bash en Linux

Comando de espera de Bash en Linux
La espera es un comando Linux que devuelve un estado de salida después de esperar un proceso de ejecución completo. Cuando varios procesos se ejecutan simultáneamente, el comando de espera solo puede realizar un seguimiento del último. Si el comando de espera no está asociado con una identificación de trabajo o proceso, esperará a que todos los procesos infantiles se completen antes de devolver un estado de salida. El comando Bash Wait a menudo se usa con el comando ID de proceso o IDS de trabajo.

En este tutorial, exploraremos el comando Bash Wait en Linux.

Sintaxis:

La sintaxis general del comando de espera en Linux es:

esperar [opción] ID

ID sería una identificación de proceso o ID de trabajo.

Explicando el comando de espera bash en Linux:

Primero, cree un archivo usando el comando touch:

$ touch bashwait.mierda

Haga que este archivo sea ejecutable utilizando el siguiente comando:

$ chmod +x nombre de archivo

Una vez que se otorgan los privilegios ejecutables al archivo, abra el archivo y escriba un script en el archivo bash:

#!/bin/bash
dormir 3 y
processID = $!
echo "PID: $ processID"
esperar $ processid
Echo "Estado de salida: $?"

ps! es una variable en Bash que almacena el PID del proceso más reciente.

Ahora, ejecute el script de la siguiente manera:

ps ./Nombre del archivo
ps ./Bashwait.mierda

El estado de identificación y existencia del proceso aparecerá en el shell.

Usando la opción -n:

Con la opción -n, el comando de espera solo espera un solo trabajo de la identificación de proceso proporcionado o las especificaciones de trabajo para finalizar antes de devolver su estado de salida. Wait -N espera a cualquier trabajo de antecedentes para finalizar y devuelve el estado de salida del trabajo si no se proporcionan argumentos.

Escriba las líneas dadas a continuación en su guión:

#!/bin/bash
dormir 30 y
dormir 8 y
dormir 7 y
esperar -n
Echo "El primer trabajo se ha completado."
esperar
echo "Todos los trabajos se han completado."

Luego, ejecute el script nuevamente y cuando se complete el primer trabajo, imprimirá el mensaje en la terminal y esperará a que se completen todos los demás trabajos.

Usando la opción -f:

La opción -f espera a que cada identificación o trabajo del proceso se detenga antes de devolver el código de salida. El control del trabajo solo está disponible para indicaciones receptivas de forma predeterminada.

Abra la terminal y ejecute el comando:

Espere el proceso 3944.

Abra una ventana de terminal diferente y ejecute el comando de matar para terminar el proceso.

El estado se cambiará. El comando de espera completará y devolverá el código de salida del proceso.

Repita los pasos anteriores con el comando -f.

Script con el comando Wait:

Estamos usando 'Hola.sh 'y' Bash.sh 'scripts para demostración. El 'hola.sh 'script imprime números de 1 a 5 y' bash.sh 'script llama hola.sh y lo ejecuta en segundo plano, teniendo el pid de hola.sh y esperando que termine.

Cree dos scripts con el nombre Hello and Bash:

Agregue las líneas dadas a continuación en el hola.Archivo SH:

#!/bin/bash
para i en 1 2 3 4 5 6 7 8 9 10
hacer
echo "Hola.sh - número de bucle $ i."
hecho

Agregue las líneas dadas a continuación en el script bash:

#!/bin/bash
Echo "comenzó Bash.mierda
Echo "Comenzó hola.mierda
./Hola.Sh &
process_id = $!
esperar $ process_id
echo "completado hola.mierda

Producción:

Conclusión:

Cuando un usuario quiere detener un proceso, el sistema libera todos los recursos mantenidos por el proceso y espera a que otro comience. Tendremos que notificar al proceso que puede reiniciar la ejecución una vez que se completen los otros procesos. El comando de espera en bash espera para completar la ejecución y devuelve el estado de salida cuando la ejecución del proceso está completa. En este manual, hemos visto algunos ejemplos del comando de espera bash en Linux.