Przejdź do głównej zawartości

wait


  • wait – wbudowane polecenie powłoki, które czeka na zakończenie procesów potomnych.
  • Może również zwrócić kod zakończenia wskazanego procesu.
  • Dostępne w powłokach takich jak bash, dash, ksh oraz zsh.

Okno terminala
wait [PID...]
  • Bez argumentów czeka na zakończenie wszystkich bieżących procesów potomnych.
  • Podanie jednego lub wielu PID powoduje oczekiwanie tylko na te procesy.

ParametrOpis
PIDIdentyfikator procesu, na który ma czekać polecenie.
$!Specjalna zmienna powłoki oznaczająca PID ostatniego procesu uruchomionego w tle.

Okno terminala
# 1) Czekanie na zakończenie ostatniego procesu w tle
sleep 5 &
wait $!
echo "Proces zakończony"
Okno terminala
# 2) Czekanie na wiele procesów w tle
sleep 3 &
sleep 5 &
wait
echo "Wszystkie procesy zakończone"
Okno terminala
# 3) Sprawdzenie kodu zakończenia procesu
sleep 2 &
wait $!
echo $?

  • wait jest wbudowaną komendą powłoki, a nie oddzielnym programem.
  • Przydatne w skryptach do synchronizacji pracy wielu procesów.
  • Zwraca kod zakończenia ostatniego procesu, na który czekał.

Błąd / KomunikatPrzyczynaRozwiązanie
wait: pid X is not a child of this shellPróba oczekiwania na proces, który nie jest potomkiem bieżącej powłoki.Upewnij się, że PID należy do procesu uruchomionego z tej samej powłoki.
command not foundUżycie w nietypowej powłoce bez wsparcia dla wait.Uruchom w powłoce obsługującej to polecenie (np. bash).