Linux-kommandoer

Vent på kommando i Linux

Vent på kommando i Linux
vente er en innebygd kommando av Linux som venter på å fullføre en løpende prosess. vente kommandoen brukes med en bestemt prosess-ID eller jobb-ID. Når flere prosesser kjører i skallet, vil bare prosess-ID for den siste kommandoen være kjent av det gjeldende skallet. Hvis ventekommandoen utføres denne gangen, blir den brukt for den siste kommandoen. Hvis ingen prosess-ID eller jobb-ID er gitt med ventekommandoen, vil den vente til alle nåværende underordnede prosesser er fullført, og returnerer avslutningsstatus.

Utgangsstatusverdien til ventekommandoen avhenger av kommandoen som er angitt av den sist angitte operanden. Når en prosess avsluttes unormalt, vil utgangsstatusen være større enn 128 og skal være forskjellig fra utgangsstatusverdiene til andre kommandoer. vente kommandoen går ut med verdien 0 når den ringer uten operander og alle prosess-ID-er er kjent av det nåværende skallet er avsluttet. Hvis ventekommandoen oppdager en feil, returnerer den en verdi fra 1 til 126. Hvis den siste prosess-ID er ukjent, avsluttes ventekommandoen med verdi 127. Hvordan du kan bruke ventekommandoen i Linux, vises i denne opplæringen.

Eksempel 1: Bruke ventekommandoen for flere prosesser

Etter å ha utført følgende skript, kjøres to prosesser i bakgrunnen, og prosess-ID for den første ekkokommandoen lagres i $ process_id-variabelen. Når ventekommandoen kjøres med $ process_id, vil neste kommando vente på å fullføre oppgaven til den første ekkokommandoen. Den andre ventekommandoen brukes med '$!'og dette indikerer prosess-ID for den siste prosessen. '$?'brukes til å lese statusverdien til ventekommandoen.

#!/ bin / bash
ekko "testing vent kommando1" &
prosess_id = $!
ekko "testing vent kommando2" &
vent $ process_id
ekko Job 1 avsluttet med status $?
vent $!
ekko Job 2 avsluttet med status $?

Produksjon:

$ bash vent 1.sh

Eksempel 2: Test vent kommando etter bruk av kill kommando

I det følgende skriptet utføres ventekommandoen etter at prosessen er avsluttet. sleep-kommandoen kjører som en bakgrunnsprosess og kill-kommandoen utføres for å avslutte prosessen. Etter at ventekommandoen utføres med prosess-ID for den avsluttede prosessen. Utgangen viser prosess-ID-en for den avsluttede prosessen.

#!/ bin / bash
ekko "Testing wait command"
sove 20 og
pid = $!
drep $ pid
vent $ pid
echo $ pid ble avsluttet.

Produksjon:

$ bash vent2.sh

Eksempel 3: Kontroller utgangsstatusverdien

I det følgende skriptet, funksjonen Sjekk() kalles av to argumentverdier. Det ble diskutert i starten av opplæringen at hvis ventekommandoen ble utført vellykket, vil utgangsverdien være 0, og hvis ventekommandoen oppdager en feil, vil den returnere en verdi mellom 1 og 126. Etter at du har kjørt skriptet, hvis du passerer 0 som andre argumentverdi, avslutter ventekommandoen vellykket, og hvis du overfører noen verdi mer enn null, avsluttes den uten hell.

#!/ bin / bash
funksjonskontroll ()

ekko "Sov i $ 1 sekunder"
sove $ 1
gå ut av $ 2

sjekk $ 1 $ 2 &
b = $!
ekko "Kontrollere statusen"
vent $ b && ekko OK || ekko IKKE OK

Produksjon:

$ bash vent 3.sh 3 0
$ bash vent 3.sh 3 5

Håper, denne opplæringen vil hjelpe deg med å lære bruk vent-kommandoen riktig. Det er en annen kommando i Linux, kalt søvn å vente på en viss mengde ganger, men det er noen forskjeller mellom disse kommandoene. Hvis du er interessert i å vite om søvnkommando, kan du gå til denne lenken.

SuperTuxKart for Linux
SuperTuxKart er en flott tittel designet for å gi deg Mario Kart-opplevelsen gratis på Linux-systemet ditt. Det er ganske utfordrende og morsomt å spi...
Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...
0 A.D. Opplæringen
Ut av de mange strategispillene der ute, 0 A.D. klarer å skille seg ut som en omfattende tittel og et veldig dypt, taktisk spill til tross for å være ...