從 bash 腳本同時運行兩個伺服器

從 bash 腳本同時運行兩個伺服器

我有兩台伺服器需要使用以下命令運行:

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只有前四行有效。色調伺服器永遠不會被打開。

這是為什麼 ?是因為終端保留給 hiveserver 嗎?請問我該如何避免這種情況。謝謝


編輯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沒有運行。第二個終端已打開,但其中沒有任何內容(完全黑屏)。

答案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 &

相關內容