Убить процесс через заданное время?

У меня есть сценарий, который пытается установить соединение с БД с помощью другой программы, и время ожидания (2,5 минуты) программы слишком велико. Я хочу добавить эту функциональность в скрипт.

Если для подключения требуется больше 5 секунд, завершите процесс
Остальное убить процесс сна / убить.

У меня проблема в том, как bash сообщает, когда процесс убит, потому что процессы находятся в одной оболочке только в фоновом режиме. Есть ли лучший способ сделать это или как я могу отключить оболочку для команд kill?

DB_CONNECTION_PROGRAM > $CONNECTFILE &
pid=$! 
(sleep 5; kill $pid) &
sleep_pid=$!
wait $pid

# If the DB failed to connect after 5 seconds and was killed
status=$? #Kill returns 128+n (fatal error)
if [ $status -gt 128 ]; then
    no_connection="ERROR: Timeout while trying to connect to $dbserver"
else # If it connected kill the sleep and any errors collect
    kill $sleep_pid
    no_connection=`sed -n '/^ERROR:/,$p' $CONNECTFILE`
fi

Ответы на вопрос(4)

Ваш ответ на вопрос