Wacht Commando in Linux

Wait Command Linux



wacht is een ingebouwde opdracht van Linux die wacht op het voltooien van een lopend proces. wacht commando wordt gebruikt met een bepaald proces-ID of taak-ID. Als er meerdere processen in de shell worden uitgevoerd, is alleen de proces-ID van de laatste opdracht bekend bij de huidige shell. Als het wait-commando deze keer wordt uitgevoerd, wordt het toegepast voor het laatste commando. Als er geen proces-ID of taak-ID wordt gegeven met de opdracht wait, dan zal het wachten tot alle huidige onderliggende processen zijn voltooid en wordt de exit-status geretourneerd.

De waarde van de exit-status van de opdracht wait hangt af van de opdracht die wordt aangegeven door de laatst opgegeven operand. Wanneer een proces abnormaal wordt beëindigd, zal de uitgangsstatus groter zijn dan 128 en zal deze verschillen van de uitgangsstatuswaarden van andere opdrachten. wacht commando wordt afgesloten met de waarde 0 wanneer het aanroept zonder operanden en alle proces-ID's waarvan bekend is dat de huidige shell is beëindigd. Als het wait-commando een fout detecteert, retourneert het elke waarde van 1 tot 126. Als het laatste proces-ID onbekend is, wordt het wait-commando afgesloten met waarde 127. Hoe u het wait-commando in Linux kunt gebruiken, wordt in deze zelfstudie getoond.







Voorbeeld-1: Wacht-commando gebruiken voor meerdere processen

Na het uitvoeren van het volgende script, worden twee processen op de achtergrond uitgevoerd en wordt het proces-ID van het eerste echo-commando opgeslagen in de variabele $process_id. Als wait-commando wordt uitgevoerd met $process_id, dan wacht het volgende commando op het voltooien van de taak van het eerste echo-commando. Het tweede wait-commando wordt gebruikt met ' $! ' en dit geeft de proces-ID van het laatst lopende proces aan. ‘ $? ' wordt gebruikt om de statuswaarde van de wachtopdracht te lezen.



#!/bin/bash
gooide uit 'test wachtcommando1' &
process_id=$!
gooide uit 'test wacht commando2' &
wacht $process_id
gooide uitFunctie1afgesloten met status$?
wacht $!
gooide uitFunctie2afgesloten met status$?

Uitgang:



$bashwacht1.sh





Voorbeeld-2: Test wacht-commando na gebruik van kill-commando

In het volgende script wordt de opdracht wait uitgevoerd nadat het proces is beëindigd. sleep-opdracht wordt uitgevoerd als een achtergrondproces en de kill-opdracht wordt uitgevoerd om het lopende proces te beëindigen. Daarna wordt het wait-commando uitgevoerd met de proces-ID van het beëindigde proces. De uitvoer toont de proces-ID van het beëindigde proces.

#!/bin/bash
gooide uit 'Testen wachtcommando'
slaap twintig &
pid=$!
doden $pid
wacht $pid
gooide uit $pidwerd beëindigd.

Uitgang:



$bashwacht2.sh

Voorbeeld-3: Controleer de uitgangsstatuswaarde

In het volgende script is de functie rekening() wordt aangeroepen door twee argumentwaarden. In het begin van de tutorial wordt besproken dat als het wait-commando met succes wordt uitgevoerd, de exit-waarde 0 zal zijn en als het wait-commando een fout detecteert, het elke waarde tussen 1 en 126 retourneert. Na het uitvoeren van het script, als u 0 doorgeeft als tweede argument value then wait opdracht wordt succesvol beëindigd en als u een waarde hoger dan nul doorgeeft, wordt deze zonder succes beëindigd.

#!/bin/bash
functierekening()
{
gooide uit 'Slaap voor $1 seconden'
slaap $ 1
Uitgang $ 2
}
rekening$ 1 $ 2 &
B=$!
gooide uit 'Status controleren'
wacht $ b && gooide uitOke|| gooide uitNIET OK

Uitgang:

$bashwacht3.sh3 0
$bashwacht3.sh3 5

Hoop, deze tutorial zal helpen om het gebruik wait commando goed te leren. Er is nog een ander commando in Linux, genaamd slaap om een ​​bepaald aantal keren te wachten, maar er zijn enkele verschillen tussen deze opdrachten. Als u geïnteresseerd bent om meer te weten over slaap commando dan kun je deze link bezoeken.