Várjon parancs Linux alatt

Wait Command Linux



várjon a Linux beépített parancsa, amely várja a futó folyamatok befejezését. várjon parancs egy adott folyamatazonosítóval vagy jobazonosítóval használható. Ha több folyamat fut a héjban, akkor az aktuális parancs csak az utolsó parancs folyamatazonosítóját ismeri. Ha ezúttal a wait parancsot hajtja végre, akkor az az utolsó parancsra lesz alkalmazva. Ha a wait paranccsal nem adnak meg folyamatazonosítót vagy jobazonosítót, akkor megvárja az összes jelenlegi gyermekfolyamat befejeződését, és visszatér a kilépési állapothoz.

A várakozás parancs kilépési állapotának értéke az utoljára megadott operandus által jelzett parancstól függ. Ha bármely folyamat rendellenesen leáll, akkor a kilépési állapot 128 -nál nagyobb lesz, és eltér a többi parancs kilépési állapotértékeitől. várjon parancs 0 értékkel lép ki, amikor operandusok nélkül hív, és az összes folyamat azonosítója ismert az aktuális héjon, megszűnt. Ha a wait parancs hibát észlel, akkor 1 és 126 közötti értéket ad vissza. Ha az utolsó folyamatazonosító ismeretlen, akkor a wait parancs kilép a 127. értékkel. Ebben a bemutatóban bemutatjuk, hogyan használhatja a wait parancsot Linux alatt.







1. példa: Várakozás parancs használata több folyamathoz

A következő parancsfájl végrehajtása után két folyamat fut a háttérben, és az első echo parancs folyamatazonosítója a $ process_id változóban tárolódik. Amikor a wait parancs végrehajtásra kerül a $ process_id paranccsal, akkor a következő parancs megvárja az első echo parancs feladatának befejezését. A második várakozási parancsot a „ $! ”, És ez az utolsó futó folyamat azonosítóját jelzi. ' $? ’A várakozás parancs állapotértékének olvasására szolgál.



#!/bin/bash
kidobta 'tesztelés várakozás parancs1' &
process_id=$!
kidobta 'tesztelés várakozás parancs2' &
várjon $ process_id
kidobtaMunka1státussal kilépett$?
várjon $!
kidobtaMunka2státussal kilépett$?

Kimenet:



$bashvárj1.sh





2. példa: Tesztelje a várakozás parancsot a kill parancs használata után

A következő szkriptben a folyamat befejezése után a wait parancs kerül végrehajtásra. Az alvó parancs háttérfolyamatként fut, a kill parancs pedig a futási folyamat befejezéséhez hajtódik végre. Ezt követően a várakozás parancs végrehajtásra kerül a befejezett folyamat azonosítójával. A kimenet a befejezett folyamat azonosítóját mutatja.

#!/bin/bash
kidobta 'Várakozási parancs tesztelése'
alvás húsz &
pid=$!
megöl $ pid
várjon $ pid
kidobta $ pidmegszűnt.

Kimenet:



$bashvárj2.sh

3. példa: Ellenőrizze a kilépési állapot értékét

A következő szkriptben a függvény jelölje be() két argumentumérték hívja. Az oktatóanyag elején tárgyaljuk, hogy ha a wait parancsot sikeresen végrehajtotta, akkor a kilépési érték 0 lesz, és ha a wait parancs hibát észlel, akkor 1 és 126 közötti értéket ad vissza. A szkript futtatása után, ha 0 -t ad meg második argumentumként value then wait parancs sikeresen befejeződik, és ha bármely értéket nullánál nagyobb mértékben ad át, akkor sikertelenül fejeződik be.

#!/bin/bash
funkciójelölje be()
{
kidobta 'Alvás 1 dollárért'
alvás $ 1
kijárat 2 USD
}
jelölje be$ 1 2 USD &
b=$!
kidobta 'Állapot ellenőrzése'
várjon $ b && kidobtarendben|| kidobtaNEM OKÉ

Kimenet:

$bashvárj3.sh3 0
$bashvárj3.sh3 5

Reméljük, ez az oktatóanyag segít megtanulni a use wait parancs megfelelő használatát. A Linuxban van egy másik parancs, az úgynevezett alvás várni kell egy bizonyos alkalommal, de vannak különbségek e parancsok között. Ha érdekel tudni alvási parancs akkor megnézheti ezt a linket.