Führen Sie zwei Server gleichzeitig über ein Bash-Skript aus

Führen Sie zwei Server gleichzeitig über ein Bash-Skript aus

Ich habe zwei Server, die ich mit diesen Befehlen ausführen muss:

cd /home/hadoop/apache-hive-3.1.1-bin/ 
sudo hiveserver2 

Und

sudo /opt/hue/build/env/bin/hue runserver 

Also habe ich beide Befehle in einSkript.sh(zusammen mit anderen Sachen):

$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
cd /home/hadoop/apache-hive-3.1.1-bin/ 
hiveserver2 & 
sudo /opt/hue/build/env/bin/hue runserver &

Wenn ich es also ausführe, bash script.shfunktionieren nur die ersten vier Zeilen. Der Hue-Server wird nie eingeschaltet.

Warum ist das so? Liegt es daran, dass das Terminal für den Hiveserver reserviert bleibt? Wie kann ich das bitte vermeiden? Danke


BEARBEITEN 1:

Also habe ich mein Skript wie vorgeschlagen bearbeitet:

$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
sudo gnome-terminal -- bash -c "cd /home/hadoop/apache-hive-3.1.1-bin; hiveserver2 &" 
sudo /opt/hue/build/env/bin/hue runserver &

und ich habe es mit ausgeführt bash script.sh. Jetzt läuft hueserver, aber nicht hiveserver. Ein zweites Terminal ist geöffnet, aber es ist nichts darin (komplett schwarzer Bildschirm).

Antwort1

Folgendes können Sie stattdessen tun:

gnome-terminal -- bash -c "$HADOOP_HOME/sbin/start-dfs.sh; $HADOOP_HOME/sbin/start-yarn.sh; cd /home/hadoop/apache-hive-3.1.1-bin; hiveserver2" &&
sudo /opt/hue/build/env/bin/hue runserver &

verwandte Informationen