Если команда может зависнуть навсегда — timeout убивает её по таймауту:

timeout 5s curl https://example.com

По умолчанию посылается SIGTERM, но не все процессы его слушают. --kill-after добивает SIGKILL, если процесс не завершился сам:

timeout --kill-after=3s 10s ./stuck-script.sh

Код возврата 124 — сигнал о том, что сработал именно таймаут, а не ошибка самой команды:

timeout 5s long-task; echo $?   # 124 = превышен лимит

В cron-задачах timeout — стандартная страховка от зависшего скрипта, который иначе будет копиться в процессах до следующего перезапуска:

* * * * * timeout 50s /opt/scripts/sync.sh

#linux #bash #cron #sysadmin