snipt

Ctrl+h for KB shortcuts

Bash

Checking if a microservice is up and running

START_TIME=$(date +%s)
END_TIME=$(date +%s)
ELAPSED_TIME=$(($END_TIME - $START_TIME))
TIMEOUT=30


STATUS=false
while [ $STATUS = false ] && [ $ELAPSED_TIME -lt $TIMEOUT ]
do
  nc -vz <IP_ADDRESS> <PORT_NUMBER> > /dev/null 2>%1
  retval=$?
  if [ $retval -eq 1 ]; then
    STATUS=false
  else
    STATUS=true
  fi
  END_TIME=$(date +%s)
  ELAPSED_TIME=$(($END_TIME - $START_TIME))
  echo "Time: $ELAPSED_TIME"
  sleep 1
done
https://snipt.net/embed/b92a0d3674a1921a6c672a7e53ab367b/
/raw/b92a0d3674a1921a6c672a7e53ab367b/
b92a0d3674a1921a6c672a7e53ab367b
bash
Bash
21
2019-08-24T22:13:21
True
False
False
Nov 05, 2015 at 12:55 AM
/api/public/snipt/142220/
checking-if-a-microservice-is-up-and-running
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a> <a href="#L-19">19</a> <a href="#L-20">20</a> <a href="#L-21">21</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="nv">START_TIME</span><span class="o">=</span><span class="k">$(</span>date +%s<span class="k">)</span> </span><span id="L-2"><a name="L-2"></a><span class="nv">END_TIME</span><span class="o">=</span><span class="k">$(</span>date +%s<span class="k">)</span> </span><span id="L-3"><a name="L-3"></a><span class="nv">ELAPSED_TIME</span><span class="o">=</span><span class="k">$((</span><span class="nv">$END_TIME</span> <span class="o">-</span> <span class="nv">$START_TIME</span><span class="k">))</span> </span><span id="L-4"><a name="L-4"></a><span class="nv">TIMEOUT</span><span class="o">=</span>30 </span><span id="L-5"><a name="L-5"></a> </span><span id="L-6"><a name="L-6"></a> </span><span id="L-7"><a name="L-7"></a><span class="nv">STATUS</span><span class="o">=</span><span class="nb">false</span> </span><span id="L-8"><a name="L-8"></a><span class="k">while</span> <span class="o">[</span> <span class="nv">$STATUS</span> <span class="o">=</span> <span class="nb">false</span> <span class="o">]</span> <span class="o">&amp;&amp;</span> <span class="o">[</span> <span class="nv">$ELAPSED_TIME</span> -lt <span class="nv">$TIMEOUT</span> <span class="o">]</span> </span><span id="L-9"><a name="L-9"></a><span class="k">do</span> </span><span id="L-10"><a name="L-10"></a> nc -vz &lt;IP_ADDRESS&gt; &lt;PORT_NUMBER&gt; &gt; /dev/null 2&gt;%1 </span><span id="L-11"><a name="L-11"></a> <span class="nv">retval</span><span class="o">=</span><span class="nv">$?</span> </span><span id="L-12"><a name="L-12"></a> <span class="k">if</span> <span class="o">[</span> <span class="nv">$retval</span> -eq <span class="m">1</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span> </span><span id="L-13"><a name="L-13"></a> <span class="nv">STATUS</span><span class="o">=</span><span class="nb">false</span> </span><span id="L-14"><a name="L-14"></a> <span class="k">else</span> </span><span id="L-15"><a name="L-15"></a> <span class="nv">STATUS</span><span class="o">=</span><span class="nb">true</span> </span><span id="L-16"><a name="L-16"></a> <span class="k">fi</span> </span><span id="L-17"><a name="L-17"></a> <span class="nv">END_TIME</span><span class="o">=</span><span class="k">$(</span>date +%s<span class="k">)</span> </span><span id="L-18"><a name="L-18"></a> <span class="nv">ELAPSED_TIME</span><span class="o">=</span><span class="k">$((</span><span class="nv">$END_TIME</span> <span class="o">-</span> <span class="nv">$START_TIME</span><span class="k">))</span> </span><span id="L-19"><a name="L-19"></a> <span class="nb">echo</span> <span class="s2">&quot;Time: </span><span class="nv">$ELAPSED_TIME</span><span class="s2">&quot;</span> </span><span id="L-20"><a name="L-20"></a> sleep 1 </span><span id="L-21"><a name="L-21"></a><span class="k">done</span> </span></pre></div> </td></tr></table>
bash, script
--- 
+++ 
@@ -0,0 +1,21 @@
+START_TIME=$(date +%s)
+END_TIME=$(date +%s)
+ELAPSED_TIME=$(($END_TIME - $START_TIME))
+TIMEOUT=30
+
+
+STATUS=false
+while [ $STATUS = false ] && [ $ELAPSED_TIME -lt $TIMEOUT ]
+do
+  nc -vz <IP_ADDRESS> <PORT_NUMBER> > /dev/null 2>%1
+  retval=$?
+  if [ $retval -eq 1 ]; then
+    STATUS=false
+  else
+    STATUS=true
+  fi
+  END_TIME=$(date +%s)
+  ELAPSED_TIME=$(($END_TIME - $START_TIME))
+  echo "Time: $ELAPSED_TIME"
+  sleep 1
+done