2017-08-18 3 views
1

Angenommen wir folgendes GNU parallel Befehl haben:gnu parallel keine Abhängigkeit zwischen Aufträgen in jeder Abteilung

parallel --resume-failed --joblog test.log --jobs 2 -m -k sh ::: 1.sh 2.sh 3.sh 

die erste CPU: 1.sh 2.sh

die zweite CPU:

3.sh

Gerade jetzt, wenn die 1.sh fehlgeschlagen ist, wird der Code 1.sh erneut versuchen. Wenn 1.sh immer noch fehlgeschlagen ist, wird 2.ish ebenfalls nicht ausgeführt. Ich frage mich, ob es überhaupt so ist, dass wir 2.sh zuerst ausführen, wenn 1.sh fehlgeschlagen ist, und dann am Ende wieder 1.sh versuchen? Vielen Dank.

Antwort

1

Ich habe das Gefühl, Sie wirklich nicht -m wollen:

$ parallel --dryrun --resume-failed --joblog test.log --jobs 2 -m -k sh ::: 1.sh 2.sh 3.sh 
sh 1.sh 2.sh 
sh 3.sh 

Ist das wirklich das, was Sie ausführen möchten? I.e. mit 2.sh als Argument für 1.sh.

Ich rechne damit Sie dies ausführen möchten statt:

$ parallel --joblog test.log --jobs 2 -k sh ::: 1.sh 2.sh 3.sh 

Wenn eine dieser ausfällt, wird fortgesetzt Sie die ausgefallene von:

$ parallel --resume-failed --joblog test.log --jobs 2 -k sh ::: 1.sh 2.sh 3.sh 
+0

Dank für die Unterstützung @Ole! Ich habe endlich Zeit, diesen Beitrag noch einmal zu besuchen. – Chubaka