Aqui está um oneliner que simplesmente faz um loop até que a porta esteja aberta. Isso é rápido e sujo, mas você pode começar.
while ! nc -z localhost 3000; do sleep 0.1; done; echo 'The server is up!'
Substitua a instrução echo
por sua ação de escolha.
-
nc
é Netcat, "o canivete suíço para TCP / IP", -
-z
significa: não envie nenhum dado, apenas verifique se a porta está aberta, -
while ! nc -z …; do sleep 0.1; done
:. Manter a verificação e dormir por um décimo de segundo até que a porta se abre, ou seja Netcat retorna com um status zero (sucesso)