Главная > Управление процессами > wait

wait: Ожидание завершения фоновых задач

Команда wait используется для ожидания завершения указанной фоновой задачи (job) или процесса (PID). Она особенно полезна в скриптах, где необходимо дождаться завершения всех задач после их одновременного запуска.

Обзор

Wait, что буквально означает 'ждать', приостанавливает выполнение оболочки в скриптах до завершения фоновых задач. Обычно она используется, когда несколько задач запускаются параллельно в фоновом режиме с помощью символа `&`, и необходимо дождаться их полного завершения, прежде чем продолжить выполнение следующей задачи. Использование `wait` также позволяет скрипту проверять код выхода фонового процесса, что помогает определить успешность выполнения задачи.

Основные особенности

Основные особенности команды wait:

  • Ожидает завершения определенной фоновой задачи.
  • Может принимать в качестве аргумента номер задачи (job number) или ID процесса (PID).
  • При запуске без аргументов ожидает завершения всех фоновых задач.
  • Полезна для синхронизации нескольких параллельных задач в скриптах оболочки.

Основные опции

Команда wait принимает в качестве аргументов номер задачи или PID и является простой командой с небольшим количеством опций.

1) Опции выполнения

2) Справка

Сгенерированная команда:

Комбинируйте команды.

Описание:

`wait` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Изучите функциональность команды wait на различных примерах использования.

Ожидание всех фоновых задач

sleep 5 &
sleep 10 &
jobs
wait
echo '모든 작업이 완료되었습니다.'

Запускает несколько задач `sleep` в фоновом режиме, затем ожидает их завершения с помощью команды `wait`.

Ожидание конкретной задачи

sleep 10 &
sleep 5 &
jobs
wait %1
echo '1번 작업이 완료되었습니다.'

Ожидает завершения задачи №1 из двух запущенных. Используйте `jobs` для проверки номера задачи и `wait %1`.

Ожидание по ID процесса (PID)

sleep 10 &
PID=$!
echo "PID $PID 인 작업이 시작되었습니다."
wait $PID
echo "PID $PID 인 작업이 완료되었습니다."

В скрипте сохраняет PID фонового процесса в переменную с помощью `$!` и затем ожидает завершения этого PID.

Установка

wait — это встроенная команда оболочки (bash, zsh и т. д.), поэтому отдельная установка не требуется.

Советы и примечания

Здесь собраны важные моменты, которые следует учитывать при использовании команды wait.

Советы

  • `wait` приостанавливает выполнение оболочки до завершения фонового процесса. Если процесс не завершается, оболочка будет ждать бесконечно.
  • Код завершения команды `wait` совпадает с кодом завершения ожидаемого процесса. Это позволяет скрипту проверять успешность выполнения задачи.
  • Чтобы использовать номер задачи (`%1`), сначала необходимо проверить фоновые задачи текущей оболочки с помощью команды `jobs`. `$!` — это специальная переменная, содержащая PID последнего процесса, запущенного в фоновом режиме.

Те же команды в категории