El comando Wait en Linux se explica con ejemplos

Tél Espere el comando viene integrado con Linux; por lo tanto, puede encontrarlo en cualquiera de las distribuciones de Linux. Se utiliza para esperar antes de que se complete un proceso en ejecución. Para que funcione, debe usarlo con una identificación de trabajo o una identificación de proceso.

En pocas palabras, el Espere El comando con un ID de trabajo o ID de proceso determinado esperará a que el proceso se complete y devuelva su estado de terminación.

Esperar El comando es útil cuando se trata de administrar un flujo de trabajo de automatización. Puede ayudarlo a configurar el flujo correctamente para que la automatización sea exitosa. Por ejemplo, su proceso de automatización requiere que un módulo en particular finalice la ejecución antes de que el siguiente módulo entre en vigor. El comando de espera te permite hacerlo.

Índice

Funcionamiento del Espere mando

El comando monitoreará el proceso anterior. Una vez que el proceso anterior devuelve un estado, enviará un estado de salida. Por lo tanto, si está esperando que se complete un proceso con ID 25351, el comando de espera esperará a que se complete antes de enviar el estado de salida. El mensaje de retorno contendrá el estado de salida del proceso.

Sintaxis general:

wait [Processid] [jobid]
  • ID de proceso -> Si usa ID de proceso (espere PID), esperará la terminación de la utilidad
  • ID de trabajo -> En este caso, esperará el proceso en segundo plano que ha seleccionado. Solo funciona en el entorno de ejecución de shell actual.

El comando de salida está configurado para exceder un valor superior a 128 si el proceso termina abruptamente. Entonces, si ve una cantidad superior a 128, esto significa que el proceso no funcionó como se esperaba.

El estado de salida exitosa se establece en 0. Solo ocurre si el proceso finaliza exitosamente sin ningún proceso hijo ejecutándose en el shell actual. Sin embargo, si no recibe 0 como estado de salida, significa que hay algún error. Se notifica con un valor entre 1 y 126. Además, si obtiene un estado de salida de 127, eso significa que se desconoce la identificación del proceso.

Ejemplos prácticos

Para comprenderlo mejor, repasemos algunos de los ejemplos prácticos a continuación.

Esperar comando con múltiples procesos

En este ejemplo, veremos cómo el Espere El comando funciona con varios procesos. Crearemos un script donde ejecutamos dos comandos y luego los esperaremos.

Nombramos el guión multiple.sh. A continuación se muestra el código para ello.

#!/bin/bash
echo "testing the wait command instance 1" &
process_id=$!
echo "testing the wait command instance 2" &
wait $process_id
echo Job 1 is completed and exited with status $?
echo Job 2 is completed and existed with status $?

esperar-comando-multiple
Probando el comando de espera con múltiples procesos

Lo anterior también es un ejemplo de un script con el comando de espera. Además, devuelve el estado. Para comprenderlo mejor, repasemos el guión línea por línea. En la primera línea, importamos el bash que vamos a utilizar para ejecutar el script.

A continuación, haremos eco en el shell de que estamos probando el comando de espera. Almacenamos el ID de proceso del primer proceso en la variable $ process_id. Ahora, esperamos a que se ejecute el primer proceso. Una vez hecho esto, se mostrará que el primer proceso se completó y también se mostrará el estado con el "$?"

Además, puede ver que el segundo comando de espera se usa con "$!". Esto significa que usamos el segundo ID de proceso con el comando de espera.

Al final, ambos procesos se ejecutan por completo y devuelven un estado de salida de 0.

Matar un proceso y usar Espere mando

En el segundo ejemplo, mataremos un proceso y luego usaremos el Espere mando. Pongamos nombre a nuestro guión, killandwait.sh.

#! /bin/bash
echo "Killing process and using wait command"
sleep 10 &
procc_id=$!
kill $procc_id
wait $procc_id
echo $procc_id is terminate

Si ejecuta el script anterior, obtendrá el siguiente resultado:

matar y esperar
Matamos un proceso y luego usamos el comando de espera en él

Como puede ver, ese estado de salida es diferente y se lee a medida que finaliza el proceso. Este ejemplo muestra cómo el comando devuelve diferentes estados de salida según el destino del proceso.

Comprobación del valor del estado de salida

En el último ejemplo, veremos un script que usa el cheque() función. los cheque() La función toma dos argumentos. Llamemos a nuestro guión waitandcheck.sh.

Aquí definimos una función:

function check()
{
echo "Let's sleep for $1 seconds"
sleep $1
exit $2
}

Como puede, esta función primero hace eco de cuánto tiempo dormirá el primer proceso y luego los usa para dormir y salir del proceso. Tomamos la entrada usando las líneas a continuación:

check $1 $2 &
b=$!
echo "checking the status"
wait $b && echo FINE || echo NOT FINE

En las líneas anteriores, tomamos la entrada del usuario y luego mostramos el estado usando el Espere mando.

esperar y comprobar
Ejecutando el script con dos entradas, 10 y 3

ok-estado-esperar-y-comprobar
Ejecutando el script con dos entradas, 5 y 0

Conclusión

Eso es todo sobre el Espere uso de comandos en Linux. Como ya ha experimentado, se le puede dar un buen uso en el flujo de trabajo de automatización. ¿Cómo usas el comando? ¿Encontró usos adicionales a los cubiertos en este artículo? Comparta sus pensamientos con nuestros lectores.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir