在这种情况下,它将在start- all.sh
脚本结束时退出。我对hadoop不太了解,无法在这种情况下告诉您如何做,但是您需要要么在前台运行某些东西,要么使用诸如runit或supervisor之类的流程管理器来运行流程。
我认为,如果不指定-d
,您一定会误以为它会起作用;它应该具有完全相同的效果。我怀疑您是用稍微不同的命令启动了它,或者使用-it
它会改变某些情况。
while true; do sleep 1000; done
到脚本末尾。但是我不喜欢这样,因为脚本实际上应该监视启动的进程。
(我应该说我从https://github.com/sequenceiq/hadoop- docker/blob/master/bootstrap.sh窃取了该代码)