基本上我在一个蚂蚁目标中有一个接一个的sshexec任务。第一个在一台机器上启动消息发送器,第二个在另一台机器上启动消息接收器。 我假设sshexec任务将发出命令来运行消息发送者,然后在发送者运行时返回,然后以下sshexec任务将启动接收者,因此发送者和接收者将并行运行,是我希望实现的,但我不确定这是否真的如此,或者实际上第一个任务只会在发送者返回时返回,因此接收者只有在发送者完成执行后才会启动。
sshexec任务页面似乎没有提供太多信息,而且我对mac有点新手(这些命令是在运行macos 10的mac minis上发布的)所以任何帮助都将非常感谢,谢谢!
<!--start sender-->
<sshexec host="${ip.client3}"
username="${username}"
password="${userpassword}"
trust="true"
command="./sender"
/>
<!-- start receiver-->
<sshexec host="${ip.client4}"
username="${username}"
password="${userpassword}"
trust="true"
command="./receiver "
/>
答案 0 :(得分:2)
<sshexec>
任务将返回。
如果您只想同时启动这两个命令,则可以使用<parallel>
任务。嵌套在<parallel>
任务中的任何任务都将通过多线程“同时”运行。但是,通过这种方式,<sshexec>
仍然需要等待两个命令返回。
如果您只是希望您的ant脚本启动这两个命令并继续构建而不等待远程命令返回,那么您可以在命令行中使用nohup
之类的内容。
我不确定nohup是否有效,因为当我从没有这样的nohup的ssh终端运行远程命令时:
nohup command & [ENTER]
在我开始使用同一个终端做其他事情之前,我必须再次按回车。