Shell Script para demostrar el comando de espera en Linux

El comando de espera es uno de los comandos de gestión de procesos. Hay diferentes comandos de proceso en Linux, principalmente 5 comandos que son ampliamente utilizados, que son ps , wait , sleep , kill , exit .

ps es un acrónimo de estado del proceso. Muestra información sobre los procesos activos. El comando de espera suspenderá la ejecución del subproceso de llamada hasta que finalice uno de sus elementos secundarios. Devolverá el estado de salida de ese comando. El comando de suspensión se utiliza para retrasar la ejecución del siguiente comando durante un número determinado de segundos, horas, minutos, días. kill se utiliza para terminar un proceso en ejecución en segundo plano. Envía una señal de finalización al proceso y luego se detiene. Toma ID de proceso como argumento. El comando exit se usa para salir del entorno de shell actual.

Tomemos algunos ejemplos para comprender más acerca de los comandos de espera:

wait es un comando incorporado en el shell de Linux. Espera a que el proceso cambie su estado, es decir, espera a que se complete cualquier proceso en ejecución y devuelve el estado de salida.

Sintaxis:

wait [ID]

Aquí, ID es un PID (Identificador de proceso) que es único para cada proceso en ejecución. Para encontrar el ID de proceso de un proceso, puede usar el comando:

pidof [process_name]

Ejemplo: encontrar el PID de VLC (reproductor de video)

Shell Script to Demonstrate Wait Command in Linux

Encontrar el PID del proceso

Aquí, VLC es el nombre del proceso. Y 3868 es su ID de proceso.

Acercarse:

  • Creando un proceso simple.
  • Usando una variable especial ($!) para encontrar el PID (ID de proceso) para ese proceso en particular.
  • Imprime el ID del proceso.
  • Usando el comando de espera con ID de proceso como argumento para esperar hasta que finalice el proceso.
  • Una vez finalizado el proceso, imprima el ID del proceso con su estado de salida .

Nota: El estado de existencia 0 indica que el proceso se ejecuta correctamente sin ningún problema. Cualquier valor distinto de 0 indica que el proceso no se ha completado correctamente.

Guion:

#!/bin/bash

# creating simple process that will create file and write into it
cat > GEEKSFORGEEKS.txt <<< "Something is going to save into this file" &

# this will store the process id of the running process
# $! is a special variable in bash 
# that will hold the PID of the last active process i.e. creating a file.
pid=$!

# print process is running with its PID
echo "Process with PID $pid is running"

# Waiting until process is Completed
wait $pid

# print process id with its Exit status
# $? is special variable that holds the return value of the recently executed command.
echo "Process with PID $pid has finished with Exit status: $?"

Producción:

Shell Script to Demonstrate Wait Command in Linux

Usando el comando de espera

Aquí, estamos creando un proceso que creará un archivo con una string determinada y lo almacenará en el dispositivo de almacenamiento. Luego, usando una variable especial “ $!” almacenaremos el PID de ese proceso en otra variable pid. Luego mostramos el ID del proceso y usamos el comando de espera para esperar hasta que se complete el proceso. Una vez que se ha ejecutado el proceso, devolvemos el código de estado de salida del proceso y su PID. Si el código de estado de salida es 0, podemos decir que el proceso se ejecutó con éxito.

Para múltiples procesos:

Acercarse:

  • Creación de múltiples procesos.
    • Crear un archivo de texto y escribir en él.
    • Sleep 2 pausará el shell durante 2 segundos.
    • Nuevamente creando un archivo de texto y escribiendo en él.
  • Muestra que estamos ejecutando múltiples procesos.
  • Usando wait -f para esperar hasta que todo el proceso anterior se haya ejecutado con éxito.
  • Una vez finalizado el proceso, estamos imprimiendo su estado de salida utilizando una variable especial $? .

Guion:

#!/bin/bash

# creating multiple processes
cat > Geeks.txt <<< "GeeksGeeks" &
sleep 2 &
cat > something_new.txt <<< "Something new is created" &

echo "Multiple processes are running"

# using wait to wait for the processes to finish
# -f will wait until all the processes is executed.
wait -f

#printing process Exit status
# $? is special variable that holds the return value of the recently executed command.
echo "All Processes end with Exit status: $?"

Producción:

Shell Script to Demonstrate Wait Command in Linux

Usando el comando de espera

Aquí, estamos creando 3 procesos. Luego, simplemente usamos el comando de espera para esperar a que finalicen todos los procesos. -f se usa para esperar a que finalicen todos los procesos antes de devolver el código de salida . Después de eso, simplemente imprimimos el estado de salida de estos procesos usando una variable especial «$?»

Publicación traducida automáticamente

Artículo escrito por amnindersingh1414 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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