🚀 Утилита timeout: автоматическое завершение зависших команд Когда ты запускаешь какую-то команду, и она может зависнуть - это беда.
Когда ты запускаешь какую-то команду, и она может зависнуть - это беда. Особенно в скриптах. На помощь приходит утилита timeout из пакета coreutils.
Пример использования:
timeout 30s ./backup.sh
Эта команда завершит ./backup.sh, если она не завершится за 30 секунд.
Можно задать время в секундах (s), минутах (m), часах (h) и даже днях (d).
Что произойдёт при превышении тайм-аута?
По умолчанию timeout отправляет сигнал SIGTERM, а через 5 секунд - SIGKILL, если процесс всё ещё жив.
Изменение сигнала:
timeout -s SIGINT 10s ./script.sh
Проверка кода возврата:
if timeout 5s ./some_command; then
echo "Успешно"
else
echo "Команда завершена по таймауту или с ошибкой"
fi
👉 @bash_srv