ant sshexec任务在执行命令时返回还是之前返回?

时间:2012-04-24 10:33:32

标签: linux ant

基本上我在一个蚂蚁目标中有一个接一个的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 "
    />

1 个答案:

答案 0 :(得分:2)

远程命令返回后,

<sshexec>任务将返回。

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

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

我不确定nohup是否有效,因为当我从没有这样的nohup的ssh终端运行远程命令时:

nohup command & [ENTER]

在我开始使用同一个终端做其他事情之前,我必须再次按回车。