运行 process/script 在后台使用 nohup

Run process/script in background using nohup

我正在尝试 运行 一些与 apache 风暴相关的脚本。我通过 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 started"。但是对于某些脚本似乎卡住了,我不知道为什么?

编辑:当我在本地 运行 脚本时,没有命令的 ssh 部分,它运行良好。这么说问题一定和ssh有关?

添加另一个“&”对我有用:

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!