TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #597 591
wait и wait -n: управление несколькими фоновыми задачами

Запустить процесс в фоне через & умеют почти все. Проблемы начинаются, когда таких процессов становится несколько и нужно понять, кто завершился и с каким кодом ошибки.

▪️Базовый wait

sleep 2 &
sleep 5 &

wait
echo "Все процессы завершились"


Без аргументов wait ждёт завершения всех фоновых задач текущего shell.

▪️Ожидание конкретного процесса

sleep 10 &
pid=$!

wait "$pid"
echo "Процесс завершён"


$!
- PID последнего фонового процесса.

▪️Зачем нужен wait -n

Появился в Bash 4.3+ и решает важную задачу: ждать не всех, а первого завершившегося процесса.

sleep 5 &
sleep 2 &
sleep 8 &

wait -n
echo "Кто-то уже завершился"


Скрипт продолжит работу через 2 секунды, а не через 8.

▪️Практический сценарий

Параллельная обработка файлов:

for file in *.log; do
gzip "$file" &
done

while wait -n; do
echo "Одна задача завершилась"
done


Так можно реагировать на завершение задач по мере их выполнения, а не ждать самый медленный процесс.

▪️Почему это важно

Без wait Bash может завершить скрипт раньше фоновых процессов. А wait -n позволяет строить простые очереди задач и параллельную обработку без GNU Parallel, Python и других внешних инструментов. Для многих серверных скриптов этого уже достаточно.

BashTex 📱 #bash #linux
  • 👍 5
More from @bash_tex
  1. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  2. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  3. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  4. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  5. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
  6. Sep 30, 2026DEBUG trap - как Bash выполняет код перед каждой командой В Bash есть специальный DEBUG tr…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →