2012-04-24 187 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] 

我必須再次按下回車鍵之前,我開始使用相同的終端做別的事。

相關問題