barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 31 января 2020 г.

bash: ожидание, пока не будет открыт порт

Задача

В bash-скрипте нужно подождать, пока не станет доступен определенный tcp-порт, но ждать нужно не более определенного времени.

Решение
for ((i=0;  i< 10; i++)) do if(nc -q0 localhost 8080 < /dev/null > /dev/null 2>&1) then break; fi; echo "sleeping"; sleep 2; done

Раз в 2 секунды проверяем открытость localhost:8080, но не более 10 проверок. Такой вариант работает в Ubuntu 18.04, а вот с CentOS пришлось убрать -q0 опцию, т.к. она там не поддерживается.

Комментариев нет:

Отправить комментарий