ฉันรันสิ่งนี้:
ssh -t -vvv -i ~/.ssh/druid-keypair -o StrictHostKeyChecking=no ubuntu@${INSTANCE_ADDRESS} <<EOI
# Setup Oracle Java
...
# Install dependencies - mysql must be built from source, as the 12.04 apt-get hangs
export DEBIAN_FRONTEND=noninteractive
sudo debconf-set-selections <<< 'mysql-server-5.5 mysql-server/root_password password diurd'
sudo debconf-set-selections <<< 'mysql-server-5.5 mysql-server/root_password_again password diurd'
sudo apt-get -q -y -V --force-yes --reinstall install mysql-server-5.5
echo "ALL DONE with druid environment setup!"
exit
EOI
หมายเหตุ: ฉันได้ลองและไม่ใช้ -t ใน ssh
เอาต์พุตการดีบักจาก -vvv คือ:
...
ldconfig deferred processing now taking place
ALL DONE with druid environment setup!
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
จากนั้นกระบวนการก็จะอยู่ที่นั่นตลอดไป เหตุใดคำสั่ง ssh จะไม่สิ้นสุด ฉันได้ลองกับ -t และไม่และฉันได้ลองกับทางออกและไม่ มันไม่ได้สร้างความแตกต่าง :(
อัปเดต: เมื่อฉันพิมพ์ 'jobs' ที่ท้ายสคริปต์ฉันเห็น:
JOBS:
[1]- Running nohup bin/zookeeper-server-start.sh config/zookeeper.properties 2>&1 > /dev/null &
[2]+ Running nohup bin/kafka-server-start.sh config/server.properties 2>&1 > /dev/null &
ฉันจะเรียกใช้บริการเหล่านี้และยังมีเซสชัน ssh ที่สิ้นสุดได้อย่างไร
อัปเดต: ตอนนี้ฉันปฏิเสธกระบวนการเหล่านี้ด้วยตนเอง สิ่งที่ยังไม่ออก เพื่อน WTF?
อัปเดต: เมื่อเรียกใช้งานทีละบรรทัดคำสั่งสองคำสั่งจะไม่กลับไปที่เชลล์โดยไม่ต้องกดปุ่ม CR:
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
nohup bin/kafka-server-start.sh config/server.properties &