title: How to run async commands in queue AND in background?
body: <p>I want to create a Shell script (.sh) using MacOS and LinuxOS (respectively). This is what I have made:</p>
  
  <pre><code>#!/bin/bash
  
  redis-server &amp;
  mongod &amp;
  cd ~/some/path &amp;&amp; npm start &amp;
  cd ~/some/path &amp;&amp; ./ngrok http 3000 -region=eu &amp;
  
  echo "My Workspace has been started"
  </code></pre>
  
  <p>I want redis-server to be running in background, and only by the time that the redis-server was fully initiated I want then to run the mongod service. And so for and so on.</p>
  
  <p>At the end of the script I want to see the <em>My Workspace has been started</em> log on the Terminal.</p>
  
  <p>What happens now is that it runs all of them together, I can see mixin logs in the Terminal of the redis, and then of the mongo and then some from the npm and etc.</p>
  
  <p>How can I achieve this?</p>