サブプロセスを順次追跡

サブプロセスを順次追跡

リモートサーバーで複数のコマンドを実行しています。SSHパス

  gnome-terminal --maximize 
  --tab --title='aTask' -e "sshpass -p "afsd@#$5u89f"  ssh [email protected] 'command1 && command2'" \

だから私の質問は、最後のコマンドがmvn clean installビルドが成功したかどうかをどうやって知ることができるかということです。

ある時点で、他のサブプロセスを順番に開始できるように、最初のサブプロセスがすべてのコマンドを正常に完了したかどうかを追跡する必要があります。

答え1

順次実行するには終了コードで十分です。

command && echo "it worked"

または

command || echo "we are having a bad day"

gnome-terminalまたはsshpassが正しい戻りコードファイルを返さない場合は、エラーを報告して代替を使用してください。

並列に実行したい場合パラメータ-Pまたは平行線どこ

終了状態は、実行された各コマンドの終了状態をORに組み合わせたものです。 (したがって、1つのコマンドがゼロ以外の状態で終了すると、並列性全体がゼロ以外の状態で終了します.)

コマンドのいずれかが実行される前に返された場合は、代替を使用するか、コマンドを追加して非同期デザインパターンを採用します(ホイールの再発明)。

 ; echo $(date) $? > task1.r

次に、すべての操作が完了するまで待ちます。

while [ $(cat task*.r 2>/dev/null | wc -l) -lt $TASK_COUNT ] ; do
    sleep 1
done
grep -P " [^0]$" task*.r && echo "we are having a bad day"

関連情報