通过 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 &

相关内容