GNU/Linux >> Tutoriels Linux >  >> Linux

La commande Wait sous Linux expliquée avec des exemples pratiques

La commande wait est fournie avec Linux afin que vous puissiez la trouver dans toutes les distributions Linux. Avant qu'un processus ne s'arrête, il attend qu'il se termine. Lorsque vous incluez un ID de processus ou de tâche, vous devez utiliser la commande wait. En termes simples, les commandes d'attente contenant un ID continueront d'attendre jusqu'à ce que le processus se termine et revienne à l'état de terminaison. Donc, si vous souhaitez également utiliser la commande d'attente, nous vous recommandons de lire attentivement cet article.

Qu'est-ce que la commande d'attente ?

La commande d'attente sous Linux s'avère être un processus utile et facile lorsque nous parlons de gérer le flux de travail d'automatisation. De plus, cela vous aide à configurer correctement le flux afin que l'automatisation se déroule sans heurts. Par exemple, en utilisant la commande wait, vous devez vous assurer que le module en cours finit de s'exécuter avant que le suivant puisse commencer à fonctionner.

Cette commande surveille de près le processus précédent. Un statut sera envoyé à la commande à la fin du processus précédent. Par conséquent, si vous attendez qu'un processus avec l'ID 25351 se termine, la commande d'attente soumettra un état de sortie lorsqu'il se terminera. Son état de sortie se trouvera dans son message de retour. Voici la syntaxe générale de la commande wait : 

wait [options] ID

ID(PID) -> L'ID de processus (attendre le PID) attendra jusqu'à ce que l'utilitaire soit terminé si vous choisissez cette option. Vous pouvez trouver le PID d'un processus à l'aide de la commande suivante : 

pidof <process name>

Par exemple, nous voulons trouver le PID de Firefox, puis nous exécuterons la commande ci-dessous dans le terminal :

Exemples pratiques de commande Wait sous Linux

- -

Vous trouverez ci-dessous quelques exemples de la commande d'attente qui vous aideront à mieux la comprendre. Nous avons utilisé différents scénarios et créé des scripts en conséquence, alors examinons-les :

1. Commande d'attente avec plusieurs processus

Ici, dans cet exemple, nous allons déterminer le fonctionnement de la commande wait avec de nombreux processus. Nous allons rédiger un script dans lequel nous pouvons procéder à l'exécution de deux commandes, puis attendre qu'elles s'exécutent. Nous avons créé un script bash "ubuntupit.sh" avec les informations suivantes : 

#! /bin /bash

echo "wait vlc" &

process_id=$!

echo "wait firefox" &

wait $process_id

echo process 1 ended as $?

echo process 2 ended as $?

Après avoir créé le script ci-dessus, nous avons exécuté la commande ci-dessous dans le terminal :

bash ubuntupit.sh

Nous pouvons également utiliser la commande wait dans les scripts shell, qui sont utilisés pour générer le processus enfant. Voici donc le script simple : 

#! /bin /bash

vlc &

process_id=$!

echo "PID: $process_id"

wait $process_id

echo "Exit Details: $?"

Dans la commande ci-dessus :

  • La première ligne se compose de shebang, et la deuxième ligne a vlc &pour utiliser la commande d'attente. 
  • $! fonctionne comme une variable bash interne pour stocker le PID du dernier processus, qui s'exécute en arrière-plan.
  • Le PID est passé à la commande d'attente donnée dans la ligne suivante, qui attendra jusqu'à ce que le lecteur vlc se ferme.
  • À la fin, le système imprimera les détails de sortie de la commande d'attente. 

Maintenant, exécutez ce script dans le terminal :

Nous pouvons également utiliser l'option -n dans le script pour obtenir un résultat différent. Voici un script "Ubuntupit2.sh" composé de l'option -n :

#! /bin /bash

vlc

firefox

wait -n

echo "First process ended"

wait

echo "All processes ended"

L'option -n du script ci-dessus retarde l'impression de l'instruction echo jusqu'à ce que le premier processus soit terminé. La commande wait attend que tous les processus d'arrière-plan soient terminés.

2. Arrêter un processus à l'aide de la commande Wait

En ce qui concerne le deuxième exemple concernant la commande d'attente, nous exécuterons un script nommé ubuntupit3.sh pour terminer un processus, puis nous exécuterons la commande d'attente.

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

Vous recevrez la sortie lors de l'exécution du script :

Ici, vous pouvez voir que le statut de sortie indique si le processus a été terminé. Cet exemple montre comment le statut de sortie revient différemment en fonction du résultat du processus.

3. Vérification de la valeur du statut de sortie

Dans cet exemple, vous pouvez voir que la fonction check() nécessite deux arguments ; nommons notre script ubuntupit4.sh. Dans ce script, nous utilisons la commande sleep pour illustrer l'exemple. Nous définissons ici la fonction suivante :

#! /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

Dans cette fonction, nous reflétons d'abord la longueur du premier processus. Nous utilisons ensuite les informations particulières pour dormir et quitter le processus. Nous prenons en compte les entrées suivantes :

check $1 $2 &

b=$!

echo "System is checking the status of the process"

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

Une fois que l'utilisateur a entré une valeur, la commande d'attente est utilisée pour afficher l'état. Ici, nous avons utilisé 6,5 et 6,0 comme exemple :

Enfin, des informations

L'article ci-dessus contient toutes les informations sur la commande wait, son utilisation sous Linux et les exemples de travail. Vous avez vu comment vous pouvez en faire bon usage dans les workflows d'automatisation. Tout ce qui est mentionné dans l'article se lit correctement, de la commande utilisée à ses détails supplémentaires, et ne manque aucun point.


Linux
  1. Commande Linux wc avec exemples

  2. Commande Linux cut expliquée avec 6 exemples

  3. Commande d'arrêt Linux expliquée avec des exemples

  4. Commande Linux Traceroute, expliquée avec des exemples

  5. Commande JQ sous Linux avec exemples

Commande Tr sous Linux expliquée avec des exemples

w Commande expliquée avec des exemples sous Linux

12 exemples pratiques d'In Command sous Linux

Explication de la commande Linux tee (avec exemples)

La commande Linux lsof expliquée avec 12 exemples pratiques

La commande Linux csplit expliquée (avec des exemples)