Polecenie czekania w systemie Linux

Wait Command Linux



czekać to wbudowane polecenie systemu Linux, które czeka na zakończenie dowolnego uruchomionego procesu. czekać Polecenie jest używane z określonym identyfikatorem procesu lub identyfikatorem zadania. Gdy w powłoce działa wiele procesów, bieżąca powłoka będzie znała tylko identyfikator procesu ostatniego polecenia. Jeśli tym razem zostanie wykonane polecenie oczekiwania, zostanie ono zastosowane do ostatniego polecenia. Jeśli w poleceniu wait nie podano identyfikatora procesu ani identyfikatora zadania, poczeka na zakończenie wszystkich bieżących procesów potomnych i zwróci kod zakończenia.

Wartość statusu wyjścia komendy wait zależy od komendy wskazanej przez ostatni podany operand. Gdy jakikolwiek proces zakończy się nienormalnie, kod wyjścia będzie większy niż 128 i będzie różny od wartości statusu wyjścia innych poleceń. czekać polecenie kończy działanie z wartością 0, gdy wywołuje bez operandów, a wszystkie identyfikatory procesów znane bieżącej powłoce zostały zakończone. Jeśli polecenie wait wykryje jakikolwiek błąd, zwróci dowolną wartość od 1 do 126. Jeśli ostatni identyfikator procesu jest nieznany, polecenie wait kończy działanie z wartością 127. Jak używać polecenia wait w systemie Linux pokazano w tym samouczku.







Przykład-1: Używanie polecenia oczekiwania dla wielu procesów

Po wykonaniu poniższego skryptu dwa procesy będą działały w tle, a identyfikator procesu pierwszego polecenia echo jest przechowywany w zmiennej $process_id. Gdy polecenie wait zostanie wykonane z $process_id, następne polecenie będzie czekać na zakończenie zadania pierwszego polecenia echo. Drugie polecenie oczekiwania jest używane z ‘ $! ’, a to wskazuje identyfikator ostatniego uruchomionego procesu. ‘ $? ’ służy do odczytywania wartości statusu polecenia oczekiwania.



#!/kosz/bash
wyrzucił 'testowanie polecenia oczekiwania1' &
identyfikator_procesu=$!
wyrzucił 'testowanie polecenia oczekiwania 2' &
czekać $proces_id
wyrzuciłStanowisko1wyszedł ze statusem$?
czekać $!
wyrzuciłStanowisko2wyszedł ze statusem$?

Wyjście:



$grzmotnąćczekaj1.sh





Przykład-2: Testuj komendę oczekiwania po użyciu komendy kill

W poniższym skrypcie polecenie wait jest wykonywane po zakończeniu procesu. Polecenie sleep działa jako proces w tle, a polecenie kill jest wykonywane w celu zakończenia działającego procesu. Następnie wykonywane jest polecenie oczekiwania z identyfikatorem zakończonego procesu. Dane wyjściowe pokażą identyfikator zakończonego procesu.

#!/kosz/bash
wyrzucił „Testowanie polecenia oczekiwania”
spać 20 &
pid=$!
zabić $pid
czekać $pid
wyrzucił $pidzostała zakończona.

Wyjście:



$grzmotnąćczekaj2.sh

Przykład-3: Sprawdź wartość statusu wyjścia

W poniższym skrypcie funkcja sprawdzać() jest wywoływana przez dwie wartości argumentów. Na początku samouczka jest omówione, że jeśli polecenie wait zostanie wykonane pomyślnie, wartość wyjścia wyniesie 0, a jeśli polecenie wait wykryje jakikolwiek błąd, zwróci dowolną wartość z zakresu od 1 do 126. Po uruchomieniu skryptu, jeśli przekażesz 0 jako drugi argument value then polecenie wait kończy się pomyślnie, a jeśli przekażesz jakąkolwiek wartość większą niż zero, kończy się ona niepowodzeniem.

#!/kosz/bash
funkcjonowaćsprawdzać()
{
wyrzucił „Śpij przez 1 sekundę”
spać 1 zł
Wyjście 2 zł
}
sprawdzać1 zł 2 zł &
b=$!
wyrzucił „Sprawdzanie statusu”
czekać $ b && wyrzuciłok|| wyrzuciłNIE W PORZĄDKU

Wyjście:

$grzmotnąćczekaj3.sh3 0
$grzmotnąćczekaj3.sh3 5

Mam nadzieję, że ten samouczek pomoże prawidłowo nauczyć się używania polecenia wait. W Linuksie jest jeszcze jedno polecenie o nazwie spać czekać określoną ilość razy, ale istnieją pewne różnice między tymi poleceniami. Jeśli jesteś zainteresowany, aby wiedzieć o polecenie snu następnie możesz odwiedzić ten link.