我正在尝试运行一些与apache storm相关的脚本。我通过ssh执行命令,所有这些命令都在同一个远程机器上执行。对于一些如何不能正常工作。这是我的代码:
echo Begin!
ssh -i file root@IP 'nohup ./zookeeper-3.4.6/bin/zkCli.sh -server IP >/dev/null & '
echo Zookeeper connected
ssh -i file root@IP 'nohup ./apache-storm-0.9.3/bin/storm nimbus &'
echo Nimbus started
ssh -i file root@IP 'nohup ./apache-storm-0.9.3/bin/storm ui &'
echo UI started
ssh -i file root@IP 'nohup ./apache-storm-0.9.3/bin/storm supervisor &'
echo End!
正如预期的那样,脚本首先连接zookeeper然后输出“Zookeeper connected”。之后,nimbus守护进程启动,我得到“Nimbus启动”。但是后来对于一些剧本如何陷入困境而且我不明白为什么?
编辑:当我在本地运行脚本时,没有命令的ssh部分它运行良好。这个问题必须与ssh有关吗?
答案 0 :(得分:0)
添加另一个"&"为我做了这件事:
echo Begin!
ssh -i file root@IP 'nohup ./zookeeper-3.4.6/bin/zkCli.sh -server IP >/dev/null & '
echo Zookeeper connected
sleep 15
ssh -i file root@IP 'nohup ./apache-storm-0.9.3/bin/storm nimbus &' &
echo Nimbus started
sleep 15
ssh -i file root@IP 'nohup ./apache-storm-0.9.3/bin/storm ui &' &
echo UI started
sleep 15
ssh -i file root@IP 'nohup ./apache-storm-0.9.3/bin/storm supervisor &' &
echo End!