0

基本的に、antターゲットには2つのsshexecタスクが次々にあります。1つ目は、あるマシンでメッセージ送信者を起動し、2つ目は別のマシンでメッセージ受信者を起動します。sshexecタスクがメッセージ送信者を実行するコマンドを発行し、送信者の実行中に戻ると、次のsshexecタスクが受信者を開始するため、送信者と受信者の両方が並行して実行されると想定していました。これは私が達成したいことですが、これが実際に当てはまるのか、実際に最初のタスクが返されるのは送信者が戻ったときにのみ返されるのか、したがって受信者は送信者が実行を終了した後にのみ開始されるのかはわかりません。

sshexecタスクページは多くの情報を提供していないようで、私はmacに少し慣れていません(コマンドはmacos10を実行しているmacminiで発行されています)ので、助けていただければ幸いです。

    <!--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 "
    />
4

1 に答える 1

2

<sshexec>リモートコマンドが戻った後、タスクが戻ります。

2つのコマンドを同時に開始したい場合は、<parallel>タスクを使用できます。タスクにネストされた<parallel>タスクはすべて、マルチスレッドによって「同時に」実行されます。ただし、このように<sshexec>、2つのコマンドが戻るのを待つ必要があります。

antスクリプトでこれら2つのコマンドを起動し、リモートコマンドが返されるのを待たずにビルドを続行したい場合はnohup、コマンドラインなどを使用できます。

nohupが機能するかどうかはわかりません。sshターミナルからnohupを使用してリモートコマンドを実行すると、次のようになります。

nohup command & [ENTER]

同じ端末を使って何か他のことをする前に、もう一度Enterキーを押す必要があります。

于 2012-04-25T05:27:34.313 に答える