echo '### Test --halt-on-error 0'; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true") | parallel -j10 --halt-on-error 0; echo $?; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true";echo "sleep 4; non_exist") | parallel -j10 --halt 0; echo $? ### Test --halt-on-error 0 1 2 /bin/bash: non_exist: command not found echo '**' ** echo '### Test --halt-on-error 1'; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true") | parallel -j10 --halt-on-error 1; echo $?; (echo "sleep 1;true"; echo "sleep 2; non_exist";echo "sleep 3;true";echo "sleep 4; false") | parallel -j10 --halt 1; echo $? ### Test --halt-on-error 1 1 127 parallel: This job failed: sleep 2;false parallel: Starting no more jobs. Waiting for 1 jobs to finish. /bin/bash: non_exist: command not found parallel: This job failed: sleep 2; non_exist parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job failed: sleep 4; false echo '**' ** echo '### Test --halt-on-error 2'; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true") | parallel -j10 --halt-on-error 2; echo $?; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true";echo "sleep 4; non_exist") | parallel -j10 --halt 2; echo $? ### Test --halt-on-error 2 1 1 parallel: This job failed: sleep 2;false parallel: This job failed: sleep 2;false echo '**' ** echo '### Test --halt -1'; (echo "sleep 1;false"; echo "sleep 2;true";echo "sleep 3;false") | parallel -j10 --halt-on-error -1; echo $?; (echo "sleep 1;false"; echo "sleep 2;true";echo "sleep 3;false";echo "sleep 4; non_exist") | parallel -j10 --halt -1; echo $? ### Test --halt -1 0 0 parallel: This job succeeded: sleep 2;true parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job succeeded: sleep 2;true parallel: Starting no more jobs. Waiting for 2 jobs to finish. /bin/bash: non_exist: command not found echo '**' ** echo '### Test --halt -2'; (echo "sleep 1;false"; echo "sleep 2;true";echo "sleep 3;false") | parallel -j10 --halt-on-error -2; echo $?; (echo "sleep 1;false"; echo "sleep 2;true";echo "sleep 3;false";echo "sleep 4; non_exist") | parallel -j10 --halt -2; echo $? ### Test --halt -2 0 0 parallel: This job succeeded: sleep 2;true parallel: This job succeeded: sleep 2;true echo '**' ** echo '### Test first dying print --halt-on-error 1'; (echo 0; echo 3; seq 0 7;echo 0; echo 8) | parallel -j10 -kq --halt 1 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift'; echo exit code $? ### Test first dying print --halt-on-error 1 exit code 1 0 parallel: This job failed: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 1 parallel: Starting no more jobs. Waiting for 8 jobs to finish. parallel: This job failed: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 2 parallel: Starting no more jobs. Waiting for 7 jobs to finish. 3 0 1 2 parallel: This job failed: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 3 parallel: Starting no more jobs. Waiting for 6 jobs to finish. 3 parallel: This job failed: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 3 parallel: Starting no more jobs. Waiting for 5 jobs to finish. 4 parallel: This job failed: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 4 parallel: Starting no more jobs. Waiting for 4 jobs to finish. 5 parallel: This job failed: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 5 parallel: Starting no more jobs. Waiting for 3 jobs to finish. 6 parallel: This job failed: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 6 parallel: Starting no more jobs. Waiting for 2 jobs to finish. 7 0 parallel: This job failed: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 7 parallel: Starting no more jobs. Waiting for 1 jobs to finish. 8 parallel: This job failed: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 8 echo '### Test last dying print --halt-on-error 2'; (echo 0; echo 3; seq 0 7;echo 0; echo 8) | parallel -j10 -kq --halt 2 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift'; echo exit code $? ### Test last dying print --halt-on-error 2 exit code 1 0 parallel: This job failed: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 1 echo '### Test last dying print --halt-on-error -1'; (echo 0; echo 3; seq 0 7;echo 0; echo 8) | parallel -j10 -kq --halt -1 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit not shift'; echo exit code $? ### Test last dying print --halt-on-error -1 exit code 0 0 parallel: This job succeeded: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 1 parallel: Starting no more jobs. Waiting for 8 jobs to finish. parallel: This job succeeded: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 2 parallel: Starting no more jobs. Waiting for 7 jobs to finish. 3 0 1 2 parallel: This job succeeded: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 3 parallel: Starting no more jobs. Waiting for 6 jobs to finish. 3 parallel: This job succeeded: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 3 parallel: Starting no more jobs. Waiting for 5 jobs to finish. 4 parallel: This job succeeded: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 4 parallel: Starting no more jobs. Waiting for 4 jobs to finish. 5 parallel: This job succeeded: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 5 parallel: Starting no more jobs. Waiting for 3 jobs to finish. 6 parallel: This job succeeded: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 6 parallel: Starting no more jobs. Waiting for 2 jobs to finish. 7 0 parallel: This job succeeded: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 7 parallel: Starting no more jobs. Waiting for 1 jobs to finish. 8 parallel: This job succeeded: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 8 echo '### Test last dying print --halt-on-error -2'; (echo 0; echo 3; seq 0 7;echo 0; echo 8) | parallel -j10 -kq --halt -2 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit not shift'; echo exit code $? ### Test last dying print --halt-on-error -2 exit code 0 0 parallel: This job succeeded: perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 1 echo '**' ** testhalt() { echo '### testhalt --halt '$1; (yes 0 | head -n 10; seq 10) | stdout parallel -kj4 --halt $1 'sleep {= $_=$_*0.3+1 =}; exit {}'; echo $?; (seq 10; yes 0 | head -n 10) | stdout parallel -kj4 --halt $1 'sleep {= $_=$_*0.3+1 =}; exit {}'; echo $?; }; export -f testhalt; parallel -kj0 testhalt ::: now,fail=0 now,fail=1 now,fail=2 now,fail=30% now,fail=70% soon,fail=0 soon,fail=1 soon,fail=2 soon,fail=30% soon,fail=70% now,success=0 now,success=1 now,success=2 now,success=30% now,success=70% soon,success=0 soon,success=1 soon,success=2 soon,success=30% now,success=70% ### testhalt --halt now,fail=0 parallel: This job failed: sleep 1.3; exit 1 0 parallel: This job failed: sleep 1.3; exit 1 0 ### testhalt --halt now,fail=1 parallel: This job failed: sleep 1.3; exit 1 1 parallel: This job failed: sleep 1.3; exit 1 1 ### testhalt --halt now,fail=2 parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 2 parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 2 ### testhalt --halt now,fail=30% parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 parallel: This job failed: sleep 1.9; exit 3 parallel: This job failed: sleep 2.2; exit 4 parallel: This job failed: sleep 2.5; exit 5 parallel: This job failed: sleep 2.8; exit 6 30 parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 parallel: This job failed: sleep 1.9; exit 3 parallel: This job failed: sleep 2.2; exit 4 parallel: This job failed: sleep 2.5; exit 5 parallel: This job failed: sleep 2.8; exit 6 30 ### testhalt --halt now,fail=70% parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 parallel: This job failed: sleep 1.9; exit 3 parallel: This job failed: sleep 2.2; exit 4 parallel: This job failed: sleep 2.5; exit 5 parallel: This job failed: sleep 2.8; exit 6 parallel: This job failed: sleep 3.1; exit 7 parallel: This job failed: sleep 3.4; exit 8 parallel: This job failed: sleep 3.7; exit 9 parallel: This job failed: sleep 4; exit 10 50 parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 parallel: This job failed: sleep 1.9; exit 3 parallel: This job failed: sleep 2.2; exit 4 parallel: This job failed: sleep 2.5; exit 5 parallel: This job failed: sleep 2.8; exit 6 parallel: This job failed: sleep 3.1; exit 7 parallel: This job failed: sleep 3.4; exit 8 parallel: This job failed: sleep 3.7; exit 9 parallel: This job failed: sleep 4; exit 10 50 ### testhalt --halt soon,fail=0 parallel: This job failed: sleep 1.3; exit 1 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job failed: sleep 1.6; exit 2 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job failed: sleep 1.9; exit 3 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job failed: sleep 2.2; exit 4 0 parallel: This job failed: sleep 1.3; exit 1 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job failed: sleep 1.6; exit 2 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job failed: sleep 1.9; exit 3 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job failed: sleep 2.2; exit 4 0 ### testhalt --halt soon,fail=1 parallel: This job failed: sleep 1.3; exit 1 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job failed: sleep 1.6; exit 2 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job failed: sleep 1.9; exit 3 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job failed: sleep 2.2; exit 4 1 parallel: This job failed: sleep 1.3; exit 1 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job failed: sleep 1.6; exit 2 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job failed: sleep 1.9; exit 3 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job failed: sleep 2.2; exit 4 1 ### testhalt --halt soon,fail=2 parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job failed: sleep 1.9; exit 3 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job failed: sleep 2.2; exit 4 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job failed: sleep 2.5; exit 5 2 parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job failed: sleep 1.9; exit 3 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job failed: sleep 2.2; exit 4 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job failed: sleep 2.5; exit 5 2 ### testhalt --halt soon,fail=30% parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 parallel: This job failed: sleep 1.9; exit 3 parallel: This job failed: sleep 2.2; exit 4 parallel: This job failed: sleep 2.5; exit 5 parallel: This job failed: sleep 2.8; exit 6 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job failed: sleep 3.1; exit 7 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job failed: sleep 3.4; exit 8 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job failed: sleep 3.7; exit 9 30 parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 parallel: This job failed: sleep 1.9; exit 3 parallel: This job failed: sleep 2.2; exit 4 parallel: This job failed: sleep 2.5; exit 5 parallel: This job failed: sleep 2.8; exit 6 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job failed: sleep 3.1; exit 7 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job failed: sleep 3.4; exit 8 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job failed: sleep 3.7; exit 9 30 ### testhalt --halt soon,fail=70% parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 parallel: This job failed: sleep 1.9; exit 3 parallel: This job failed: sleep 2.2; exit 4 parallel: This job failed: sleep 2.5; exit 5 parallel: This job failed: sleep 2.8; exit 6 parallel: This job failed: sleep 3.1; exit 7 parallel: This job failed: sleep 3.4; exit 8 parallel: This job failed: sleep 3.7; exit 9 parallel: This job failed: sleep 4; exit 10 50 parallel: This job failed: sleep 1.3; exit 1 parallel: This job failed: sleep 1.6; exit 2 parallel: This job failed: sleep 1.9; exit 3 parallel: This job failed: sleep 2.2; exit 4 parallel: This job failed: sleep 2.5; exit 5 parallel: This job failed: sleep 2.8; exit 6 parallel: This job failed: sleep 3.1; exit 7 parallel: This job failed: sleep 3.4; exit 8 parallel: This job failed: sleep 3.7; exit 9 parallel: This job failed: sleep 4; exit 10 50 ### testhalt --halt now,success=0 parallel: This job succeeded: sleep 1; exit 0 0 parallel: This job succeeded: sleep 1; exit 0 0 ### testhalt --halt now,success=1 parallel: This job succeeded: sleep 1; exit 0 0 parallel: This job succeeded: sleep 1; exit 0 0 ### testhalt --halt now,success=2 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 0 ### testhalt --halt now,success=30% parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 0 ### testhalt --halt now,success=70% parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 50 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 50 ### testhalt --halt soon,success=0 parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 0 parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 2 jobs to finish. 0 ### testhalt --halt soon,success=1 parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 0 parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 2 jobs to finish. 0 ### testhalt --halt soon,success=2 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 2 jobs to finish. 0 ### testhalt --halt soon,success=30% parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 3 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 2 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 parallel: Starting no more jobs. Waiting for 1 jobs to finish. parallel: This job succeeded: sleep 1; exit 0 0 ### testhalt --halt now,success=70% parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 50 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 parallel: This job succeeded: sleep 1; exit 0 50 echo '**' ** echo '### test memfree' ### test memfree parallel --memfree 1k echo Free mem: ::: 1k Free mem: 1k stdout parallel --timeout 3 --argsep II parallel --memfree 1t echo Free mem: ::: II 1t parallel: SIGTERM received. No new jobs will be started. parallel: Waiting for these 0 jobs to finish. Send SIGTERM again to stop now. echo '**' **