GNU/Linux >> Tutoriales Linux >  >> Linux

Comando de espera en Linux explicado con ejemplos prácticos

El comando de espera es algo que viene con Linux para que pueda encontrarlo en todas las distribuciones de Linux. Antes de que un proceso se detenga, espera a que finalice. Cuando incluye un ID de proceso o trabajo, debe usar el comando de espera. En pocas palabras, los comandos de espera que contienen una ID continuarán esperando hasta que el proceso finalice y vuelva al estado de finalización. Entonces, si también desea utilizar el comando de espera, le recomendamos que lea este artículo detenidamente.

¿Qué es el comando de espera?

El comando de espera en Linux demuestra ser un proceso valioso y fácil cuando hablamos de administrar el flujo de trabajo de automatización. Además, te ayuda a configurar el flujo correctamente para que la automatización se desarrolle sin problemas. Por ejemplo, al usar el comando de espera, debe asegurarse de que el módulo actual termine de ejecutarse antes de que el siguiente pueda comenzar a funcionar.

Este comando supervisa de cerca el proceso anterior. Se enviará un estado al comando al completar el proceso anterior. En consecuencia, si está esperando que se complete un proceso con ID 25351, el comando de espera enviará un estado de salida cuando se complete. Su estado de salida se encontrará en su mensaje de retorno. Esta es la sintaxis general del comando de espera: 

wait [options] ID

ID (PID) –> El ID del proceso (esperar PID) esperará hasta que finalice la utilidad si elige esta opción. Puede encontrar el PID de un proceso mediante el siguiente comando: 

pidof <process name>

Por ejemplo, queremos encontrar el PID de Firefox y luego ejecutaremos el siguiente comando en la terminal:

Ejemplos prácticos del comando de espera en Linux

- -

A continuación se muestran algunos ejemplos del comando de espera que lo ayudarán a comprenderlo mejor. Hemos utilizado diferentes escenarios y creado guiones en consecuencia, así que echemos un vistazo a ellos:

1. Comando de espera con múltiples procesos

Aquí, en este ejemplo, determinaremos el funcionamiento del comando de espera con numerosos procesos. Redactaremos un script en el que podemos proceder con la ejecución de dos comandos y luego esperar a que se ejecuten. Hemos creado un script bash "ubuntupit.sh" con la siguiente información: 

#! /bin /bash

echo "wait vlc" &

process_id=$!

echo "wait firefox" &

wait $process_id

echo process 1 ended as $?

echo process 2 ended as $?

Después de crear el script anterior, hemos ejecutado el siguiente comando en la terminal:

bash ubuntupit.sh

También podemos usar el comando de espera en los scripts de shell, que se usan para generar el proceso secundario. Este es el guión simple: 

#! /bin /bash

vlc &

process_id=$!

echo "PID: $process_id"

wait $process_id

echo "Exit Details: $?"

En el comando anterior:

  • La primera línea consiste en shebang, y la segunda línea tiene vlc ¶ usar el comando de espera en ella. 
  • $! funciona como una variable bash interna para almacenar el PID del último proceso, que se ejecuta en segundo plano.
  • El PID se pasa al comando de espera proporcionado en la siguiente línea, que esperará hasta que se cierre el reproductor vlc.
  • Al final, el sistema imprimirá los detalles de salida del comando de espera. 

Ahora, ejecute este script en la terminal:

También podemos usar la opción -n en el script para obtener un resultado diferente. Aquí hay un script "Ubuntupit2.sh" que consta de la opción -n:

#! /bin /bash

vlc

firefox

wait -n

echo "First process ended"

wait

echo "All processes ended"

La opción -n en el script anterior retrasa la impresión de la declaración de eco hasta que se completa el primer proceso. El comando de espera espera hasta que todos los procesos en segundo plano hayan finalizado.

2. Matar un proceso usando el comando de espera

Con respecto al segundo ejemplo sobre el comando de espera, ejecutaremos un script llamado ubuntupit3.sh para terminar un proceso y luego ejecutaremos el comando de espera.

#! /bin/bash
echo "Kill a Process"
vlc &
process_id=$!
kill $process_id
wait $process_id
echo $process_id is ended successfully.

Recibirá el resultado al ejecutar el script:

Aquí puede ver que el estado de salida indica si el proceso ha finalizado. Este ejemplo muestra cómo el estado de salida regresa de manera diferente según el resultado del proceso.

3. Comprobación del valor de estado de salida

En este ejemplo, puede ver que la función de verificación de función () requiere dos argumentos; nombremos nuestro script como ubuntupit4.sh. En este script, estamos usando el comando de suspensión para demostrar el ejemplo. Estamos definiendo la siguiente función aquí:

#! /bin/bash

function check()

{

echo "Execute sleep for $1 seconds"

sleep $1

exit $2

}

check $1 $2 &

b=$!

echo "System is checking the status of the process"

wait $b && echo Ended Successfully || echo Not Ended Successfully

En esta función, primero reflejamos la longitud del primer proceso. Luego usamos la información particular para dormir y salir del proceso. Tomamos en cuenta la siguiente entrada:

check $1 $2 &

b=$!

echo "System is checking the status of the process"

wait $b && echo Ended Successfully || echo Not Ended Successfully

Después de que el usuario ingresa un valor, el comando de espera se usa para generar el estado. Aquí hemos usado 6,5 y 6,0 como ejemplo:

Finalmente, Perspectivas

El artículo anterior incluye toda la información sobre el comando de espera, su uso en Linux y los ejemplos de trabajo. Ha visto cómo puede hacer un buen uso de él en los flujos de trabajo de automatización. Todo lo mencionado en el artículo se lee adecuadamente, desde el comando utilizado hasta sus detalles adicionales, y no pierde ningún punto.


Linux
  1. Comando wc Linux con ejemplos

  2. Comando de corte de Linux explicado con 6 ejemplos

  3. Comando de apagado de Linux explicado con ejemplos

  4. Comando Traceroute de Linux, explicado con ejemplos

  5. Comando JQ en Linux con ejemplos

Comando Tr en Linux explicado con ejemplos

w Comando explicado con ejemplos en Linux

12 ejemplos prácticos de In Command en Linux

Explicación del comando tee de Linux (con ejemplos)

Comando lsof de Linux explicado con 12 ejemplos prácticos

Explicación del comando csplit de Linux (con ejemplos)