【问题标题】:Does ant sshexec task return when command it's executing returns or before?ant sshexec 任务在它执行的命令返回时或之前返回吗?
【发布时间】:2012-10-26 10:36:14
【问题描述】:

基本上我在一个 ant 目标中有 2 个 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 "
    />

【问题讨论】:

    标签: linux ant


    【解决方案1】:

    &lt;sshexec&gt;任务会在远程命令返回后返回。

    如果你只是想让两个命令同时启动,你可以使用&lt;parallel&gt; task。任何嵌套在&lt;parallel&gt; 任务中的任务都将通过多线程“同时”运行。不过这样一来&lt;sshexec&gt;还是需要等待两个命令返回。

    如果您只想让您的 ant 脚本启动这两个命令并继续构建而不等待远程命令返回,您可以在命令行中使用 nohup 之类的东西。

    我不确定 nohup 是否有效,因为当我使用 nohup 从 ssh 终端运行远程命令时,如下所示:

    nohup command & [ENTER]
    

    在我开始使用同一个终端执行其他操作之前,我必须再次按 Enter。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 2021-01-19
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多