bash スクリプトから 2 つのサーバーを同時に実行する

bash スクリプトから 2 つのサーバーを同時に実行する

以下のコマンドで実行する必要があるサーバーが 2 つあります。

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

そして

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

そこで私は両方のコマンドをスクリプト(他のものと一緒に):

$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 &

bash script.shしたがって、最初の 4 行のみで実行すると、hue サーバーは起動されません。

それはなぜですか? ターミナルがハイブサーバー用に予約されたままになっているからでしょうか? どうすればこれを回避できますか。 ありがとうございます


編集1:

そこで、提案に従ってスクリプトを編集しました。

$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 &

そして、 を使用して実行しましたbash script.sh。現在、hueserver は実行されていますが、hiveserver は実行されていません。2 番目のターミナルは開いていますが、何も表示されていません (完全に黒い画面)。

答え1

代わりにできることは次のとおりです:

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 &

関連情報