Здравствуйте.
Вот такая конструкция watchdog timer, защита от зависания:
#!/bin/bash
{
sleep 5m
kill $$
} &
# ...
Возможен вариант, если скрипт закончит работу без timeout, операционка создаст другой процесс, и сия фоновая процедура его прибьёт?
Да и потом. Может ли дочерний (блок) убить родительсткий?