BashでTCP接続可能になるまでまち、接続できたら終了する方法を調べた。
方法はncコマンドを使用する方法とBashだけでできる方法があるらしいが、ncコマンドは大抵デフォルトでインストールされていないので、Bashだけで行いたい。
対応
以下のコードで1秒間隔でTCP接続できるまで待ち、30秒経過した場合はタイムアウトする。
HOST=postgres
PORT=5432
timeout 30 bash -c "until printf '' 2>>/dev/null >>/dev/tcp/${HOST}/${PORT}; do sleep 1; done"