Linux-opdrachten

Wacht Commando in Linux

Wacht Commando in Linux
wacht is een ingebouwd commando van Linux dat 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, wacht het totdat alle huidige onderliggende processen zijn voltooid en geeft het de exit-status terug.

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 bekend zijn bij de huidige shell zijn beëindigd. Als het wait-commando een fout detecteert, retourneert het elke waarde van 1 tot 126. Als de laatste proces-ID onbekend is, wordt de wachtopdracht 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 de proces-ID van de eerste echo-opdracht opgeslagen in de variabele $process_id. Als de opdracht wait wordt uitgevoerd met $process_id, dan wacht de volgende opdracht op het voltooien van de taak van de eerste echo-opdracht. Het tweede wait-commando wordt gebruikt met '$!' en dit geeft de proces-ID aan van het laatst lopende proces. '$?' wordt gebruikt om de statuswaarde van de wachtopdracht te lezen.

#!/bin/bash
echo "wachtopdracht 1 testen" &
process_id=$!
echo "wachtopdracht 2 testen" &
wacht $process_id
echo Taak 1 afgesloten met status $?
wacht $!
echo Job 2 afgesloten met status $?

Uitgang:

$ bash wacht1.sh

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

In het volgende script wordt de opdracht wait uitgevoerd na het beëindigen van het proces. sleep-opdracht wordt uitgevoerd als achtergrondproces en 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
echo "Wachtopdracht testen"
slaap 20 &
pid=$!
dood $pid
wacht $pid
echo $pid is beëindigd.

Uitgang:

$ bash wacht2.sh

Voorbeeld-3: Controleer de uitgangsstatuswaarde

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

#!/bin/bash
functiecontrole()

echo "Slaap voor $1 seconden"
slapen $1
afsluiten $2

controleer $1 $2 &
b=$!
echo "De status controleren"
wacht $b && echo OK || echo NIET OK

Uitgang:

$ bash wacht3.sh 3 0
$ bash wacht3.sh 3 5

Hoop, deze tutorial zal helpen om het gebruik wait commando correct 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 in slaapcommando's, kunt u deze link bezoeken:.

Strijd om Wesnoth 1.13.6 Ontwikkeling vrijgegeven
Strijd om Wesnoth 1.13.6 die vorige maand werd uitgebracht, is de zesde ontwikkelingsrelease in de 1.13.x-serie en het levert een aantal verbeteringen...
Hoe League Of Legends op Ubuntu 14 te installeren.04
Als je fan bent van League of Legends, dan is dit een kans voor jou om League of Legends te testen. Merk op dat LOL wordt ondersteund op PlayOnLinux a...
Installeer de nieuwste OpenRA Strategy Game op Ubuntu Linux
OpenRA is een Libre/Free Real Time Strategy-game-engine die de vroege Westwood-games nabootst, zoals de klassieke Command & Conquer: Red Alert. Gedist...