Для управления несколькими параллельными процессами в Bash важно контролировать их выполнение и предотвращать зависания или снижение производительности. Инструменты timeout и wait позволяют ограничить время выполнения задач и обеспечить их корректное завершение. Пример: запуск длительных процессов с ограничением времени работы и ожиданием их завершения перед продолжением.
📝 Пример кода:
#!/bin/bash
# Функция для выполнения команды с таймаутом
run_with_timeout() {
timeout 10s "$@" || echo "Process $1 timed out"
}
# Запуск нескольких процессов параллельно
run_with_timeout command1 &
run_with_timeout command2 &
run_with_timeout command3 &
# Ожидаем завершения всех процессов
wait
echo "All processes completed."
📌 Как это работает:
timeout 10s— устанавливает ограничение по времени на выполнение каждой команды. Если процесс не завершится за 10 секунд, он будет завершен автоматически.&— запускает команды в фоновом режиме, позволяя им работать параллельно.wait— блокирует выполнение скрипта до тех пор, пока все фоновые процессы не завершатся.command1, command2, command3— это команды или скрипты, которые могут выполнять задачи в фоне, например, запрашивать внешние API, выполнять анализ данных или обрабатывать файлы.
❗️ Такой способ контроля над процессами помогает избегать зависаний и позволяет обрабатывать ошибки на лету, не блокируя другие процессы.
tags: #bash #linux #автоматизация



