Иногда команда зависает, перестаёт отвечать или работает значительно дольше ожидаемого. Обычно для таких случаев пишут отдельные проверки, запускают процессы в фоне или завершают их вручную.
Во многих дистрибутивах уже есть утилита
timeout из GNU Coreutils:bash id="c8fv6n"
$ timeout 30s ./backup.sh
Если через 30 секунд команда не завершится самостоятельно,
timeout отправит ей сигнал завершения.При необходимости можно указать другой сигнал:
bash id="x4pqsn"
$ timeout -s SIGKILL 5m command
Это удобно для автоматизации, резервного копирования, тестов и CI, где зависший процесс не должен блокировать выполнение остальных задач.
Команда возвращает код завершения, поэтому её легко использовать в shell-сценариях без дополнительных конструкций.
🔥
timeout позволяет сделать любой сценарий устойчивее к зависаниям буквально одной строкой.🚪 Linux Ready | #совет
