2012-04-24 144 views
0

基本上我有两个sshexec任务在一个蚂蚁目标中,一个接一个。第一个在一台机器上启动消息发送器,第二个在另一台机器上启动消息接收器。 我假定sshexec任务将发出命令来运行消息发送方,然后在发送方运行时返回,然后下面的sshexec任务将启动接收方,因此发送方和接收方都将并行运行,这是我希望实现的目标,但我不确定实际情况是否如此,或者实际上第一个任务只会在发送者返回时返回,因此接收者只有在发送者完成执行后才会启动。ant 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 " 
    /> 

回答

2

<sshexec>任务将在远程命令返回后返回。

如果您只是想让两个命令同时启动,您可以使用<parallel>任务。嵌套在<parallel>任务中的任何任务将通过多线程“同时”运行。但是,这样,<sshexec>仍然需要等待这两个命令返回。

如果您只是希望您的ant脚本启动这两个命令并继续构建而不等待远程命令返回,则可以在命令行中使用诸如nohup之类的内容。

我不知道,如果nohup的作品,因为当我从SSH终端运行远程命令nohup的是这样的:

nohup command & [ENTER] 

我必须再次按下回车键之前,我开始使用相同的终端做别的事。

相关问题