Polecenie Bash Wait w systemie Linux

Bash Wait Command Linux



Wait to polecenie systemu Linux, które zwraca kod zakończenia po odczekaniu na zakończenie procesu. Gdy kilka procesów działa jednocześnie, polecenie wait może śledzić tylko ostatni. Jeśli komenda wait nie jest powiązana z identyfikatorem zadania lub procesu, zaczeka na zakończenie wszystkich procesów potomnych przed zwróceniem kodu zakończenia. Polecenie bash wait jest często używane z poleceniem identyfikatorów procesów lub identyfikatorów zadań.

W tym samouczku omówimy polecenie Bash Wait w systemie Linux.







Składnia:

Ogólna składnia polecenia Wait w systemie Linux to:



czekaj [opcja] ID

ID to identyfikator procesu lub identyfikator zadania.



Wyjaśnienie polecenia Bash Wait w systemie Linux:

Najpierw utwórz plik za pomocą polecenia touch:





$dotykaćBashCzekaj.sh

Uczyń ten plik wykonywalnym, używając poniższego polecenia:



$chmod+x nazwa pliku

Po przyznaniu uprawnień wykonywalnych do pliku, otwórz plik i napisz skrypt w pliku bash:

#!/kosz/bash

spać 3 &

identyfikator procesu=$!

wyrzucił „PID:$ID procesu'

czekać $ID procesu

wyrzucił 'Stan wyjścia: $?'

$! jest zmienną w BASH, która przechowuje PID najnowszego procesu.

Teraz uruchom skrypt w następujący sposób:

$./Nazwa pliku

$./BashCzekaj.sh

W powłoce pojawią się ID procesu i status Exist.

Używając opcji –n:

W przypadku opcji –n komenda wait czeka tylko na zakończenie pojedynczego zadania z podanego identyfikatora procesu lub specyfikacji zadania, zanim zwróci swój kod zakończenia. Wait -n czeka na zakończenie dowolnego zadania w tle i zwraca status zakończenia zadania, jeśli nie podano argumentów.

Napisz podane poniżej linie w swoim skrypcie:

#!/kosz/bash

spać 30 &

spać 8 &

spać 7 &

czekać -n

wyrzucił 'Pierwsza praca została zakończona.'

czekać

wyrzucił „Wszystkie prace zostały ukończone”.

Następnie uruchom skrypt ponownie, a po zakończeniu pierwszego zadania wydrukuje komunikat na terminalu i poczeka na zakończenie wszystkich innych zadań.

Używając opcji –f:

Opcja -f czeka na zatrzymanie każdego identyfikatora procesu lub zadania przed zwróceniem kodu zakończenia. Sterowanie zadaniami jest domyślnie dostępne tylko dla responsywnych monitów.

Otwórz terminal i uruchom polecenie:

Poczekaj na proces 3944.

Otwórz inne okno terminala i wykonaj polecenie kill, aby zakończyć proces.

Status zostanie zmieniony. Polecenie Wait zakończy działanie i zwróci kod zakończenia procesu.

Powtórz powyższe kroki za pomocą polecenia –f.

Skrypt z poleceniem Wait:

Do demonstracji używamy skryptów „hello.sh” i „bash.sh”. Skrypt „hello.sh” wypisuje liczby od 1 do 5, a skrypt „bash.sh” wywołuje hello.sh i uruchamia go w tle, mając PID hello.sh i czekając na jego zakończenie.

Utwórz dwa skrypty o nazwie hello i bash:

Dodaj poniższe linie w pliku hello.sh:

#!/kosz/bash

dlaiw 1 2 3 4 5 6 7 8 9 10

robić

wyrzuciłhello.sh – Numer pętli$i.

Gotowe

Dodaj poniższe linie w skrypcie bash:

#!/kosz/bash

wyrzuciłUruchomiono bash.sh

wyrzuciłRozpoczęto hello.sh

./cześć.sz&

identyfikator_procesu=$!

czekać $proces_id

wyrzuciłUkończono hello.sh

Wyjście:

Wniosek:

Gdy użytkownik chce zatrzymać proces, system zwalnia wszystkie zasoby przechowywane przez proces i czeka na uruchomienie kolejnego. Będziemy musieli powiadomić proces, że może wznowić wykonywanie po zakończeniu innych procesów. Polecenie wait w bash czeka na zakończenie wykonywania i zwraca status wyjścia po zakończeniu wykonywania procesu. W tym podręczniku widzieliśmy kilka przykładów polecenia Bash wait w systemie Linux.