Bash 스크립트에서 두 개의 서버를 동시에 실행

Bash 스크립트에서 두 개의 서버를 동시에 실행

다음 명령을 사용하여 실행해야 하는 두 개의 서버가 있습니다.

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

그리고

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

그래서 두 명령을 모두script.sh(다른 것들과 함께):

$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따라서 첫 번째 네 줄만 실행하면 작동합니다. 색조 서버는 절대 켜지지 않습니다.

왜 그런 겁니까 ? 터미널이 하이브서버용으로 예약되어 있기 때문인가요? 어떻게 하면 그것을 피할 수 있습니까? 감사합니다


편집 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 &

관련 정보