testsuite: Passes testsuite (sql fails periodically).

This commit is contained in:
Ole Tange 2016-01-23 09:54:05 +01:00
parent 37fd9adb7b
commit a4ead8224d
10 changed files with 443 additions and 247 deletions

View file

@ -41,4 +41,18 @@ echo '### Are children killed if GNU Parallel receives INT twice? There should b
sleep 1;
pstree $$;
echo '**'
echo '### Do children receive --termseq signals'
show_signals() {
perl -e 'for(keys %SIG) { $SIG{$_} = eval "sub { print STDERR \"Got $_\\n\"; }";} while(1){sleep 1}';
};
export -f show_signals;
echo | stdout parallel --termseq TERM,200,TERM,100,TERM,50,KILL,25 -u --timeout 1 show_signals;
echo | stdout parallel --termseq INT,200,TERM,100,KILL,25 -u --timeout 1 show_signals;
sleep 3;
EOF

View file

@ -150,7 +150,7 @@ echo "$funky" | parallel --shellquote
echo
echo "### Zsh environment"
stdout ssh -q zsh@lo <<'EOS' | egrep -v 'Welcome to |packages can be updated.'
stdout ssh -q zsh@lo <<'EOS' | egrep -v 'Welcome to |packages can be updated|security updates'
myvar="myvar works"
funky=$(perl -e 'print pack "c*", 1..255')
myarray=('' array_val2 3 '' 5)
@ -186,7 +186,7 @@ EOS
echo
echo "### Ksh environment"
stdout ssh -q ksh@lo <<'EOS' | egrep -v 'Welcome to |packages can be updated.'
stdout ssh -q ksh@lo <<'EOS' | egrep -v 'Welcome to |packages can be updated|security updates'
myvar="myvar works"
funky=$(perl -e 'print pack "c*", 1..255')
myarray=('' array_val2 3 '' 5)
@ -218,7 +218,7 @@ EOS
echo
echo "### Fish environment"
stdout ssh -q fish@lo <<'EOS' | egrep -v 'Welcome to |packages can be updated.'
stdout ssh -q fish@lo <<'EOS' | egrep -v 'Welcome to |packages can be updated|security updates'
# All variables cannot reliably be exported
# perl -e 'print map { "setenv///$_///$ENV{$_}\n"} grep !/^(PWD|SHLVL|PATH)$/, keys %ENV'| sh -c 'parallel --shellquote' | perl -pe 's:///: :g' |fish
@ -277,7 +277,7 @@ echo "### csh environment"
# makealias_with_newline
# perl -e '$/=undef;$_=<>;s/\n/\\\n/g;s/\047/\047\042\047\042\047/g;print'
stdout ssh -q csh@lo <<'EOS' | egrep -v 'Welcome to |packages can be updated.'
stdout ssh -q csh@lo <<'EOS' | egrep -v 'Welcome to |packages can be updated|security updates'
set myvar = "myvar works"
set funky = "`perl -e 'print pack q(c*), 1..255'`"
set myarray = ('' 'array_val2' '3' '' '5')

View file

@ -6,8 +6,8 @@ P_ALL="vax freebsd solaris openbsd netbsd debian alpha aix redhat hpux ultrix mi
P_NOTWORKING="vax alpha openstep"
P_NOTWORKING_YET="ultrix irix"
P_WORKING="freebsd solaris openbsd netbsd debian aix redhat hpux qnx openindiana suse solaris-x86 mandriva ubuntu scosysv unixware dragonfly centos miros raspbian macosx hpux-ia64 pidora"
P_TEMPORARILY_BROKEN="minix syllable tru64 hurd"
P_WORKING="freebsd solaris openbsd netbsd debian aix redhat hpux qnx openindiana suse solaris-x86 mandriva ubuntu scosysv unixware centos miros raspbian macosx hpux-ia64 pidora"
P_TEMPORARILY_BROKEN="minix syllable tru64 hurd dragonfly"
P="$P_WORKING"
POLAR=`parallel -k echo {}.polarhome.com ::: $P`

View file

@ -19,6 +19,8 @@ perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' ../../src/
s:ignored_vars:ignored_vars|sort:;
# Remove \n to join all joblogs into the previous block
s:cat /tmp/log\n:cat /tmp/log;:;
# Remove import (python code)
s:import.*::;
# When parallelized: Sleep to make sure the abc-files are made
/%head1/ and $_.="sleep .3\n\n"x10;
' |
@ -56,6 +58,7 @@ perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' ../../src/
s/.*command_[ABC].*\n//;
# Due to multiple jobs "Second started" often ends up wrong
s/Second started\n//;
s/The second finished\n//;
# Due to multiple jobs "tried 2" often ends up wrong
s/tried 2\n//;
# Due to order is often mixed up

View file

@ -549,7 +549,7 @@ echo '{##} bug #45841: Replacement string for total no of jobs'
1 3 3 3 3 3 3 3
2 3 3 3 3 3 3 3
3 3
parallel -k -X --plus echo {#} {##} ::: {1..15}
parallel -k -S 8/: -X --plus echo {#} {##} ::: {1..15}
1 15 15
2 15 15
3 15 15

View file

@ -27,7 +27,16 @@ parallel: Waiting for these 1 jobs to finish. Send SIGTERM again to stop now.
parallel: bash -c sleep\ 120\ \&\ pid\=\$\!\;\ wait\ \$pid 1
echo '### Are children killed if GNU Parallel receives INT twice? There should be no sleep at the end'
### Are children killed if GNU Parallel receives INT twice? There should be no sleep at the end
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 & T=$!; sleep 5; pstree $$; kill -INT $T; sleep 1; pstree $$;
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 & T=$!; sleep 5; pstree $$; kill -INT $T; sleep 1; pstree $$; echo '**'
bash-+-perl---bash---sleep
`-pstree
bash---pstree
**
echo '### Do children receive --termseq signals'
### Do children receive --termseq signals
show_signals() { perl -e 'for(keys %SIG) { $SIG{$_} = eval "sub { print STDERR \"Got $_\\n\"; }";} while(1){sleep 1}'; }; export -f show_signals; echo | stdout parallel --termseq TERM,200,TERM,100,TERM,50,KILL,25 -u --timeout 1 show_signals; echo | stdout parallel --termseq INT,200,TERM,100,KILL,25 -u --timeout 1 show_signals; sleep 3;
Got TERM
Got TERM
Got TERM
Got INT
Got TERM

View file

@ -32,58 +32,58 @@ echo '### --sqlandworker postgresql'
### --sqlandworker postgresql
(sleep 2; parallel --sqlworker $PGTBL sleep .3\;echo >$T3) &
parallel --sqlandworker $PGTBL sleep .3\;echo ::: {1..5} ::: {a..e} >$T4; true sort -u $T3 $T4; sql $PG 'select * from parsql order by seq;'
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr
-----+------+-------------+------------+------+---------+---------+---------+-------------------+----+----+--------+--------
1 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | 1 a +|
| | | | | | | | | | | |
2 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | 1 b +|
| | | | | | | | | | | |
3 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | 1 c +|
| | | | | | | | | | | |
4 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | 1 d +|
| | | | | | | | | | | |
5 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | 1 e +|
| | | | | | | | | | | |
6 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | 2 a +|
| | | | | | | | | | | |
7 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | 2 b +|
| | | | | | | | | | | |
8 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | 2 c +|
| | | | | | | | | | | |
9 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | 2 d +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | 2 e +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | 3 a +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | 3 b +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | 3 c +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | 3 d +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | 3 e +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | 4 a +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | 4 b +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | 4 c +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | 4 d +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | 4 e +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | 5 a +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | 5 b +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | 5 c +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | 5 d +|
| | | | | | | | | | | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | 5 e +|
| | | | | | | | | | | |
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr
-----+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+--------
1 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | 1 a +|
| | | | | | | | | | | |
2 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | 1 b +|
| | | | | | | | | | | |
3 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | 1 c +|
| | | | | | | | | | | |
4 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | 1 d +|
| | | | | | | | | | | |
5 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | 1 e +|
| | | | | | | | | | | |
6 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | 2 a +|
| | | | | | | | | | | |
7 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | 2 b +|
| | | | | | | | | | | |
8 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | 2 c +|
| | | | | | | | | | | |
9 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | 2 d +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | 2 e +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | 3 a +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | 3 b +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | 3 c +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | 3 d +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | 3 e +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | 4 a +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | 4 b +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | 4 c +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | 4 d +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | 4 e +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | 5 a +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | 5 b +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | 5 c +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | 5 d +|
| | | | | | | | | | | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | 5 e +|
| | | | | | | | | | | |
(999rows)
echo '### --sqlandworker sqlite'
@ -145,58 +145,58 @@ echo '### --sqlandworker postgresql -S lo'
### --sqlandworker postgresql -S lo
(sleep 2; parallel -S lo --sqlworker $PGTBL2 sleep .3\;echo >$T7) &
parallel -S lo --sqlandworker $PGTBL2 sleep .3\;echo ::: {1..5} ::: {a..e} >$T8; true sort -u $T7 $T8; sql $PG 'select * from parsql2 order by seq;'
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr
-----+------+-------------+------------+------+---------+---------+---------+-------------------+----+----+--------+--------
1 | lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | 1 a +|
| | | | | | | | | | | |
2 | lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | 1 b +|
| | | | | | | | | | | |
3 | lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | 1 c +|
| | | | | | | | | | | |
4 | lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | 1 d +|
| | | | | | | | | | | |
5 | lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | 1 e +|
| | | | | | | | | | | |
6 | lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | 2 a +|
| | | | | | | | | | | |
7 | lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | 2 b +|
| | | | | | | | | | | |
8 | lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | 2 c +|
| | | | | | | | | | | |
9 | lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | 2 d +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | 2 e +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | 3 a +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | 3 b +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | 3 c +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | 3 d +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | 3 e +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | 4 a +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | 4 b +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | 4 c +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | 4 d +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | 4 e +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | 5 a +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | 5 b +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | 5 c +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | 5 d +|
| | | | | | | | | | | |
999| lo |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | 5 e +|
| | | | | | | | | | | |
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr
-----+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+--------
1 | lo |999|999| | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | 1 a +|
| | | | | | | | | | | |
2 | lo |999|999| | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | 1 b +|
| | | | | | | | | | | |
3 | lo |999|999| | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | 1 c +|
| | | | | | | | | | | |
4 | lo |999|999| | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | 1 d +|
| | | | | | | | | | | |
5 | lo |999|999| | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | 1 e +|
| | | | | | | | | | | |
6 | lo |999|999| | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | 2 a +|
| | | | | | | | | | | |
7 | lo |999|999| | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | 2 b +|
| | | | | | | | | | | |
8 | lo |999|999| | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | 2 c +|
| | | | | | | | | | | |
9 | lo |999|999| | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | 2 d +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | 2 e +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | 3 a +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | 3 b +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | 3 c +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | 3 d +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | 3 e +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | 4 a +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | 4 b +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | 4 c +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | 4 d +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | 4 e +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | 5 a +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | 5 b +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | 5 c +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | 5 d +|
| | | | | | | | | | | |
999| lo |999|999| | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | 5 e +|
| | | | | | | | | | | |
(999rows)
echo '### --sqlandworker postgresql --results'
@ -204,98 +204,98 @@ echo '### --sqlandworker postgresql --results'
mkdir -p /tmp/out--sql
(sleep 2; parallel --results /tmp/out--sql --sqlworker $PGTBL3 sleep .3\;echo >$T9) &
parallel --results /tmp/out--sql --sqlandworker $PGTBL3 sleep .3\;echo ::: {1..5} ::: {a..e} >$T999; true sort -u $T9 $T999; sql $PG 'select * from parsql3 order by seq;'
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr
-----+------+-------------+------------+------+---------+---------+---------+-------------------+----+----+------------------------------+------------------------------
1 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | /tmp/out--sql/1/1/2/a/stdout | /tmp/out--sql/1/1/2/a/stderr
2 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | /tmp/out--sql/1/1/2/b/stdout | /tmp/out--sql/1/1/2/b/stderr
3 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | /tmp/out--sql/1/1/2/c/stdout | /tmp/out--sql/1/1/2/c/stderr
4 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | /tmp/out--sql/1/1/2/d/stdout | /tmp/out--sql/1/1/2/d/stderr
5 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | /tmp/out--sql/1/1/2/e/stdout | /tmp/out--sql/1/1/2/e/stderr
6 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | /tmp/out--sql/1/2/2/a/stdout | /tmp/out--sql/1/2/2/a/stderr
7 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | /tmp/out--sql/1/2/2/b/stdout | /tmp/out--sql/1/2/2/b/stderr
8 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | /tmp/out--sql/1/2/2/c/stdout | /tmp/out--sql/1/2/2/c/stderr
9 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | /tmp/out--sql/1/2/2/d/stdout | /tmp/out--sql/1/2/2/d/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | /tmp/out--sql/1/2/2/e/stdout | /tmp/out--sql/1/2/2/e/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | /tmp/out--sql/1/3/2/a/stdout | /tmp/out--sql/1/3/2/a/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | /tmp/out--sql/1/3/2/b/stdout | /tmp/out--sql/1/3/2/b/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | /tmp/out--sql/1/3/2/c/stdout | /tmp/out--sql/1/3/2/c/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | /tmp/out--sql/1/3/2/d/stdout | /tmp/out--sql/1/3/2/d/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | /tmp/out--sql/1/3/2/e/stdout | /tmp/out--sql/1/3/2/e/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | /tmp/out--sql/1/4/2/a/stdout | /tmp/out--sql/1/4/2/a/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | /tmp/out--sql/1/4/2/b/stdout | /tmp/out--sql/1/4/2/b/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | /tmp/out--sql/1/4/2/c/stdout | /tmp/out--sql/1/4/2/c/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | /tmp/out--sql/1/4/2/d/stdout | /tmp/out--sql/1/4/2/d/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | /tmp/out--sql/1/4/2/e/stdout | /tmp/out--sql/1/4/2/e/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | /tmp/out--sql/1/5/2/a/stdout | /tmp/out--sql/1/5/2/a/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | /tmp/out--sql/1/5/2/b/stdout | /tmp/out--sql/1/5/2/b/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | /tmp/out--sql/1/5/2/c/stdout | /tmp/out--sql/1/5/2/c/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | /tmp/out--sql/1/5/2/d/stdout | /tmp/out--sql/1/5/2/d/stderr
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | /tmp/out--sql/1/5/2/e/stdout | /tmp/out--sql/1/5/2/e/stderr
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr
-----+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+------------------------------+------------------------------
1 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | /tmp/out--sql/1/1/2/a/stdout | /tmp/out--sql/1/1/2/a/stderr
2 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | /tmp/out--sql/1/1/2/b/stdout | /tmp/out--sql/1/1/2/b/stderr
3 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | /tmp/out--sql/1/1/2/c/stdout | /tmp/out--sql/1/1/2/c/stderr
4 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | /tmp/out--sql/1/1/2/d/stdout | /tmp/out--sql/1/1/2/d/stderr
5 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | /tmp/out--sql/1/1/2/e/stdout | /tmp/out--sql/1/1/2/e/stderr
6 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | /tmp/out--sql/1/2/2/a/stdout | /tmp/out--sql/1/2/2/a/stderr
7 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | /tmp/out--sql/1/2/2/b/stdout | /tmp/out--sql/1/2/2/b/stderr
8 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | /tmp/out--sql/1/2/2/c/stdout | /tmp/out--sql/1/2/2/c/stderr
9 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | /tmp/out--sql/1/2/2/d/stdout | /tmp/out--sql/1/2/2/d/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | /tmp/out--sql/1/2/2/e/stdout | /tmp/out--sql/1/2/2/e/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | /tmp/out--sql/1/3/2/a/stdout | /tmp/out--sql/1/3/2/a/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | /tmp/out--sql/1/3/2/b/stdout | /tmp/out--sql/1/3/2/b/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | /tmp/out--sql/1/3/2/c/stdout | /tmp/out--sql/1/3/2/c/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | /tmp/out--sql/1/3/2/d/stdout | /tmp/out--sql/1/3/2/d/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | /tmp/out--sql/1/3/2/e/stdout | /tmp/out--sql/1/3/2/e/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | /tmp/out--sql/1/4/2/a/stdout | /tmp/out--sql/1/4/2/a/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | /tmp/out--sql/1/4/2/b/stdout | /tmp/out--sql/1/4/2/b/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | /tmp/out--sql/1/4/2/c/stdout | /tmp/out--sql/1/4/2/c/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | /tmp/out--sql/1/4/2/d/stdout | /tmp/out--sql/1/4/2/d/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | /tmp/out--sql/1/4/2/e/stdout | /tmp/out--sql/1/4/2/e/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | /tmp/out--sql/1/5/2/a/stdout | /tmp/out--sql/1/5/2/a/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | /tmp/out--sql/1/5/2/b/stdout | /tmp/out--sql/1/5/2/b/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | /tmp/out--sql/1/5/2/c/stdout | /tmp/out--sql/1/5/2/c/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | /tmp/out--sql/1/5/2/d/stdout | /tmp/out--sql/1/5/2/d/stderr
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | /tmp/out--sql/1/5/2/e/stdout | /tmp/out--sql/1/5/2/e/stderr
(999rows)
echo '### --sqlandworker postgresql --linebuffer'
### --sqlandworker postgresql --linebuffer
(sleep 2; parallel --linebuffer --sqlworker $PGTBL4 sleep .3\;echo >$T999) &
parallel --linebuffer --sqlandworker $PGTBL4 sleep .3\;echo ::: {1..5} ::: {a..e} >$T999; true sort -u $T999$T999; sql $PG 'select * from parsql4 order by seq;'
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr
-----+------+-------------+------------+------+---------+---------+---------+-------------------+----+----+--------+--------
1 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | |
2 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | |
3 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | |
4 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | |
5 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | |
6 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | |
7 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | |
8 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | |
9 | : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | |
999| : |999e+999|999| | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | |
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr
-----+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+--------
1 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 a | 1 | a | |
2 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 b | 1 | b | |
3 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 c | 1 | c | |
4 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 d | 1 | d | |
5 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 1 e | 1 | e | |
6 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 a | 2 | a | |
7 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 b | 2 | b | |
8 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 c | 2 | c | |
9 | : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 d | 2 | d | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 2 e | 2 | e | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 a | 3 | a | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 b | 3 | b | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 c | 3 | c | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 d | 3 | d | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 3 e | 3 | e | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 a | 4 | a | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 b | 4 | b | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 c | 4 | c | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 d | 4 | d | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 4 e | 4 | e | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 a | 5 | a | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 b | 5 | b | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 c | 5 | c | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 d | 5 | d | |
999| : |999|999| | 4 | 0 | 0 | sleep .3;echo 5 e | 5 | e | |
(999rows)
echo '### --sqlandworker postgresql -u'
### --sqlandworker postgresql -u
(sleep 2; parallel -u --sqlworker $PGTBL5 sleep .3\;echo >$T999) &
parallel -u --sqlandworker $PGTBL5 sleep .3\;echo ::: {1..5} ::: {a..e} >$T999; true sort -u $T999$T999; sql $PG 'select * from parsql5 order by seq;'
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr
-----+------+-------------+------------+------+---------+---------+---------+-------------------+----+----+--------+--------
1 | : |999e+999|999| | | 0 | 0 | sleep .3;echo 1 a | 1 | a | |
2 | : |999e+999|999| | | 0 | 0 | sleep .3;echo 1 b | 1 | b | |
3 | : |999e+999|999| | | 0 | 0 | sleep .3;echo 1 c | 1 | c | |
4 | : |999e+999|999| | | 0 | 0 | sleep .3;echo 1 d | 1 | d | |
5 | : |999e+999|999| | | 0 | 0 | sleep .3;echo 1 e | 1 | e | |
6 | : |999e+999|999| | | 0 | 0 | sleep .3;echo 2 a | 2 | a | |
7 | : |999e+999|999| | | 0 | 0 | sleep .3;echo 2 b | 2 | b | |
8 | : |999e+999|999| | | 0 | 0 | sleep .3;echo 2 c | 2 | c | |
9 | : |999e+999|999| | | 0 | 0 | sleep .3;echo 2 d | 2 | d | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 2 e | 2 | e | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 3 a | 3 | a | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 3 b | 3 | b | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 3 c | 3 | c | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 3 d | 3 | d | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 3 e | 3 | e | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 4 a | 4 | a | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 4 b | 4 | b | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 4 c | 4 | c | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 4 d | 4 | d | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 4 e | 4 | e | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 5 a | 5 | a | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 5 b | 5 | b | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 5 c | 5 | c | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 5 d | 5 | d | |
999| : |999e+999|999| | | 0 | 0 | sleep .3;echo 5 e | 5 | e | |
seq | host | starttime | jobruntime | send | receive | exitval | _signal | command | v1 | v2 | stdout | stderr
-----+------+----------------+------------+------+---------+---------+---------+-------------------+----+----+--------+--------
1 | : |999|999| | | 0 | 0 | sleep .3;echo 1 a | 1 | a | |
2 | : |999|999| | | 0 | 0 | sleep .3;echo 1 b | 1 | b | |
3 | : |999|999| | | 0 | 0 | sleep .3;echo 1 c | 1 | c | |
4 | : |999|999| | | 0 | 0 | sleep .3;echo 1 d | 1 | d | |
5 | : |999|999| | | 0 | 0 | sleep .3;echo 1 e | 1 | e | |
6 | : |999|999| | | 0 | 0 | sleep .3;echo 2 a | 2 | a | |
7 | : |999|999| | | 0 | 0 | sleep .3;echo 2 b | 2 | b | |
8 | : |999|999| | | 0 | 0 | sleep .3;echo 2 c | 2 | c | |
9 | : |999|999| | | 0 | 0 | sleep .3;echo 2 d | 2 | d | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 2 e | 2 | e | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 3 a | 3 | a | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 3 b | 3 | b | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 3 c | 3 | c | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 3 d | 3 | d | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 3 e | 3 | e | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 4 a | 4 | a | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 4 b | 4 | b | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 4 c | 4 | c | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 4 d | 4 | d | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 4 e | 4 | e | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 5 a | 5 | a | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 5 b | 5 | b | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 5 c | 5 | c | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 5 d | 5 | d | |
999| : |999|999| | | 0 | 0 | sleep .3;echo 5 e | 5 | e | |
(999rows)

View file

@ -140,7 +140,6 @@ Funky-
* Documentation: http://www.linuxmint.com
0 updates are security updates.
zsh:130: command not found: alias_echo
function_works
@ -166,7 +165,6 @@ Funky-
* Documentation: http://www.linuxmint.com
0 updates are security updates.
3 arg alias_works
function_works
@ -190,7 +188,6 @@ Funky-
* Documentation: http://www.linuxmint.com
0 updates are security updates.
3 arg alias_works
function_works
@ -223,7 +220,6 @@ Funky-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ
* Documentation: http://www.linuxmint.com
0 updates are security updates.
Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.

View file

@ -3,7 +3,7 @@ Setup on polarhome machines
copy_and_test freebsd.polarhome.com
freebsd.polarhome.com ### Run the test on freebsd.polarhome.com
freebsd.polarhome.com Works on freebsd.polarhome.com
freebsd.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 0000.
freebsd.polarhome.com Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 0000.
copy_and_test solaris.polarhome.com
solaris.polarhome.com ### Run the test on solaris.polarhome.com
solaris.polarhome.com Works on solaris.polarhome.com
@ -68,10 +68,6 @@ copy_and_test unixware.polarhome.com
unixware.polarhome.com ### Run the test on unixware.polarhome.com
unixware.polarhome.com Works on unixware.polarhome.com
unixware.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 0000
copy_and_test dragonfly.polarhome.com
dragonfly.polarhome.com ### Run the test on dragonfly.polarhome.com
dragonfly.polarhome.com Works on dragonfly.polarhome.com
dragonfly.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 0000
copy_and_test centos.polarhome.com
centos.polarhome.com ### Run the test on centos.polarhome.com
centos.polarhome.com Works on centos.polarhome.com
@ -102,7 +98,6 @@ pidora.polarhome.com Error in tempfile() using template /XXXXXXXX.arg: Could not
aix7
centos.polarhome.com
debian
dragonfly.polarhome.com
freebsd.polarhome.com
hpux-ia64
hpux64

View file

@ -187,6 +187,26 @@ B
1
parallel echo '{= s:\.[^.]+$::;s:\.[^.]+$::; =}' ::: foo.tar.gz
foo
parallel echo Job {#} of {= '$_=total_jobs()' =} ::: {1..5}
Job 1 of 5
Job 2 of 5
Job 3 of 5
Job 4 of 5
Job 5 of 5
parallel echo {} shell quoted is {= '$_=Q($_)' =} ::: '*/!#$'
*/!#$ shell quoted is \*/\!\#\$
parallel echo {= 'if($_==3) { $job->skip() }' =} ::: {1..5}
1
2
4
5
parallel echo {= 'if($arg[1]==$arg[2]) { $job->skip() }' =} ::: {1..3} ::: {1..3}
1 2
1 3
2 1
2 3
3 1
3 2
parallel --parens ,,,, echo ',, s:\.[^.]+$::;s:\.[^.]+$::; ,,' ::: foo.tar.gz
foo
parallel --rpl '.. s:\.[^.]+$::;s:\.[^.]+$::;' echo '..' ::: foo.tar.gz
@ -240,6 +260,28 @@ f1=B f2=D
parallel --header : --colsep '\t' echo f1={f1} f2={f2} :::: tsv-file.tsv
f1=A f2=B
f1=C f2=D
parallel --plus echo {} ::: dir/sub/file.ext1.ext2.ext3
parallel --plus echo {+/}/{/} ::: dir/sub/file.ext1.ext2.ext3
parallel --plus echo {.}.{+.} ::: dir/sub/file.ext1.ext2.ext3
parallel --plus echo {+/}/{/.}.{+.} ::: dir/sub/file.ext1.ext2.ext3
parallel --plus echo {..}.{+..} ::: dir/sub/file.ext1.ext2.ext3
parallel --plus echo {+/}/{/..}.{+..} ::: dir/sub/file.ext1.ext2.ext3
parallel --plus echo {...}.{+...} ::: dir/sub/file.ext1.ext2.ext3
parallel --plus echo {+/}/{/...}.{+...} ::: dir/sub/file.ext1.ext2.ext3
dir/sub/file.ext1.ext2.ext3
dir/sub/file.ext1.ext2.ext3
dir/sub/file.ext1.ext2.ext3
dir/sub/file.ext1.ext2.ext3
dir/sub/file.ext1.ext2.ext3
dir/sub/file.ext1.ext2.ext3
dir/sub/file.ext1.ext2.ext3
dir/sub/file.ext1.ext2.ext3
parallel --plus echo Job {#} of {##} ::: {1..5}
Job 1 of 5
Job 2 of 5
Job 3 of 5
Job 4 of 5
Job 5 of 5
cat num30000 | parallel --xargs echo | wc -l
3
cat num30000 | parallel --xargs -s 10000 echo | wc -l
@ -356,39 +398,53 @@ echo C
A
B
C
outdir/1/A/seq
outdir/1/A/stderr
outdir/1/A/stdout
outdir/1/B/seq
outdir/1/B/stderr
outdir/1/B/stdout
outdir/1/C/seq
outdir/1/C/stderr
outdir/1/C/stdout
/bin/bash: outdir/1/A/stderr: No such file or directory
/bin/bash: line 1: outdir/1/A/stdout: No such file or directory
/bin/bash: line 2: outdir/1/B/stderr: No such file or directory
/bin/bash: line 3: outdir/1/B/stdout: No such file or directory
/bin/bash: line 4: outdir/1/C/stderr: No such file or directory
/bin/bash: line 5: outdir/1/C/stdout: No such file or directory
/bin/bash: outdir/1/A/seq: No such file or directory
/bin/bash: line 1: outdir/1/A/stderr: No such file or directory
/bin/bash: line 2: outdir/1/A/stdout: No such file or directory
/bin/bash: line 3: outdir/1/B/seq: No such file or directory
/bin/bash: line 4: outdir/1/B/stderr: No such file or directory
/bin/bash: line 5: outdir/1/B/stdout: No such file or directory
/bin/bash: line 6: outdir/1/C/seq: No such file or directory
/bin/bash: line 7: outdir/1/C/stderr: No such file or directory
/bin/bash: line 8: outdir/1/C/stdout: No such file or directory
parallel --header : --results outdir echo ::: f1 A B ::: f2 C D
A C
A D
B C
B D
outdir/f1/A/f2/C/seq
outdir/f1/A/f2/C/stderr
outdir/f1/A/f2/C/stdout
outdir/f1/A/f2/D/seq
outdir/f1/A/f2/D/stderr
outdir/f1/A/f2/D/stdout
outdir/f1/B/f2/C/seq
outdir/f1/B/f2/C/stderr
outdir/f1/B/f2/C/stdout
outdir/f1/B/f2/D/seq
outdir/f1/B/f2/D/stderr
outdir/f1/B/f2/D/stdout
/bin/bash: outdir/f1/A/f2/C/stderr: No such file or directory
/bin/bash: line 1: outdir/f1/A/f2/C/stdout: No such file or directory
/bin/bash: line 2: outdir/f1/A/f2/D/stderr: No such file or directory
/bin/bash: line 3: outdir/f1/A/f2/D/stdout: No such file or directory
/bin/bash: line 4: outdir/f1/B/f2/C/stderr: No such file or directory
/bin/bash: line 5: outdir/f1/B/f2/C/stdout: No such file or directory
/bin/bash: line 6: outdir/f1/B/f2/D/stderr: No such file or directory
/bin/bash: line 7: outdir/f1/B/f2/D/stdout: No such file or directory
/bin/bash: outdir/f1/A/f2/C/seq: No such file or directory
/bin/bash: line 1: outdir/f1/A/f2/C/stderr: No such file or directory
/bin/bash: line 2: outdir/f1/A/f2/C/stdout: No such file or directory
/bin/bash: line 3: outdir/f1/A/f2/D/seq: No such file or directory
/bin/bash: line 4: outdir/f1/A/f2/D/stderr: No such file or directory
/bin/bash: line 5: outdir/f1/A/f2/D/stdout: No such file or directory
/bin/bash: line 6: outdir/f1/B/f2/C/seq: No such file or directory
/bin/bash: line 7: outdir/f1/B/f2/C/stderr: No such file or directory
/bin/bash: line 8: outdir/f1/B/f2/C/stdout: No such file or directory
/bin/bash: line 9: outdir/f1/B/f2/D/seq: No such file or directory
/bin/bash: line 10: outdir/f1/B/f2/D/stderr: No such file or directory
/bin/bash: line 11: outdir/f1/B/f2/D/stdout: No such file or directory
/usr/bin/time -f %e parallel -N0 -j64 sleep 1 :::: num128
2
/usr/bin/time -f %e parallel -N0 sleep 1 :::: num128
@ -474,6 +530,8 @@ BASE64 parallel --joblog /tmp/log exit ::: 1 2 3 0
cat /tmp/log;
parallel --resume-failed --joblog /tmp/log exit ::: 1 2 3 0 0 0
cat /tmp/log;
parallel --resume-failed --joblog /tmp/log
cat /tmp/log;
parallel -j2 --halt soon,fail=1 echo {}\; exit {} ::: 0 0 1 2 3
Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
1 : TIMESTAMP 9.999 0 0 1 0 exit 1
@ -502,6 +560,16 @@ Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
1 : TIMESTAMP 9.999 0 0 1 0 exit 1
2 : TIMESTAMP 9.999 0 0 2 0 exit 2
3 : TIMESTAMP 9.999 0 0 3 0 exit 3
Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
1 : TIMESTAMP 9.999 0 0 1 0 exit 1
2 : TIMESTAMP 9.999 0 0 2 0 exit 2
3 : TIMESTAMP 9.999 0 0 3 0 exit 3
4 : TIMESTAMP 9.999 0 0 0 0 exit 0
5 : TIMESTAMP 9.999 0 0 0 0 exit 0
6 : TIMESTAMP 9.999 0 0 0 0 exit 0
1 : TIMESTAMP 9.999 0 0 1 0 exit 1
2 : TIMESTAMP 9.999 0 0 2 0 exit 2
3 : TIMESTAMP 9.999 0 0 3 0 exit 3
0
0
1
@ -529,15 +597,13 @@ echo X; exit X
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
parallel: This job failed:
echo X; exit X
parallel -j2 --halt soon,success=1 echo {}\; exit {} ::: 1 2 3 0 4 5 6
parallel -j2 --halt now,success=1 echo {}\; exit {} ::: 1 2 3 0 4 5 6
1
2
3
0
4
parallel: This job succeeded:
echo X; exit X
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
parallel -k --retries 3 'echo tried {} >>/tmp/runs; echo completed {}; exit {}' ::: 1 2 0
cat /tmp/runs
completed 1
@ -547,10 +613,19 @@ tried 1
tried 0
tried 1
tried 1
show_signals() {
perl -e 'for(keys %SIG) { $SIG{$_} = eval "sub { print \"Got $_\\n\"; }";} while(1){sleep 1}'
}
export -f show_signals
echo | parallel --termseq TERM,200,TERM,100,TERM,50,KILL,25 -u --timeout 1 show_signals
echo | parallel --termseq INT,200,TERM,100,KILL,25 -u --timeout 1 show_signals
/bin/bash: show_signals: command not found
parallel --load 100% echo load is less than {} job per cpu ::: 1
load is less than 1 job per cpu
parallel --noswap echo the system is not swapping ::: now
the system is not swapping now
parallel --memfree 1G echo will run if more than 1 GB is ::: free
will run if more than 1 GB is free
parallel --nice 17 echo this is being run with nice -n ::: 17
this is being run with nice -n 17
parallel -S $SERVER1 echo running on ::: $SERVER1
@ -560,6 +635,11 @@ running on username@parallel@lo
parallel -S : echo running on ::: the_local_machine
running on the_local_machine
parallel -S '/usr/bin/ssh '$SERVER1 echo custom ::: ssh
custom ssh
parallel --ssh /usr/bin/ssh -S $SERVER1 echo custom ::: ssh
custom ssh
export PARALLEL_SSH=/usr/bin/ssh
parallel -S $SERVER1 echo custom ::: ssh
custom ssh
parallel -S $SERVER1 -S $SERVER2 echo ::: running on more hosts
running
@ -576,18 +656,19 @@ more
hosts
parallel -S 4/$SERVER1 echo force {} cpus on server ::: 4
force 4 cpus on server
parallel --hostgroup -S @grp1/$SERVER1 -S @grp2/$SERVER2 echo {} ::: run_on_grp1@grp1 run_on_grp2@grp2
parallel --hostgroup -S @grp1/$SERVER1 -S @grp2/$SERVER2 echo {} ::: \
run_on_grp1@grp1 run_on_grp2@grp2
run_on_grp1
run_on_grp2
echo This is input_file > input_file
parallel -S $SERVER1 --transfer cat ::: input_file
parallel -S $SERVER1 --transferfile {} cat ::: input_file
This is input_file
echo This is input_file > input_file
parallel -S $SERVER1 --transfer --return {}.out cat {} ">"{}.out ::: input_file
parallel -S $SERVER1 --transferfile {} --return {}.out cat {} ">"{}.out ::: input_file
cat input_file.out
This is input_file
echo This is input_file > input_file
parallel -S $SERVER1 --transfer --return {}.out --cleanup cat {} ">"{}.out ::: input_file
parallel -S $SERVER1 --transferfile {} --return {}.out --cleanup cat {} ">"{}.out ::: input_file
cat input_file.out
This is input_file
echo This is input_file > input_file
@ -735,14 +816,34 @@ _
/bin/bash: my_func2: command not found
parallel -vv -S $SERVER1 echo ::: bar
ssh -l parallel lo -- exec perl -e \''@GNU_Parallel=("use","IPC::Open3;","use","MIME::Base64");eval"@GNU_Parallel";$SIG{CHLD}="IGNORE";my$zip=(grep{-x$_}"/usr/local/bin/bzip2")[0]||"bzip2";my($in,$out,$eval);open3($in,$out,">&STDERR",$zip,"-dc");if(my$perlpid=fork){close$in;$eval=join"",<$out>;close$out;}else{close$out;print$in(decode_base64(join"",@ARGV));close$in;exit;}wait;eval$eval;'\' BASE64;
ssh -l parallel lo -- exec perl -e \''@GNU_Parallel=("use","IPC::Open3;","use","MIME::Base64");eval"@GNU_Parallel";my$eval;$eval=decode_base64(join"",@ARGV);eval$eval;'\' BASE64;
bar
my_func3() {
echo in my_func $1 > $1.out
}
export -f my_func3
parallel -vv --workdir ... --nice 17 --env _ --trc {}.out -S $SERVER1 my_func3 {} ::: abc-file
( ssh -l parallel lo -- mkdir -p ./.TMPWORKDIR;rsync --protocol 30 -rlDzR -essh\ -l\ parallel ./abc-file lo:./.TMPWORKDIR );ssh -l parallel lo -- exec perl -e \''@GNU_Parallel=("use","IPC::Open3;","use","MIME::Base64");eval"@GNU_Parallel";$SIG{CHLD}="IGNORE";my$zip=(grep{-x$_}"/usr/local/bin/bzip2")[0]||"bzip2";my($in,$out,$eval);open3($in,$out,">&STDERR",$zip,"-dc");if(my$perlpid=fork){close$in;$eval=join"",<$out>;close$out;}else{close$out;print$in(decode_base64(join"",@ARGV));close$in;exit;}wait;eval$eval;'\' BASE64;_EXIT_status=$?; mkdir -p ./.; rsync --protocol 30 --rsync-path=cd\ ./.TMPWORKDIR/./.\;\ rsync -rlDzR -essh\ -l\ parallel lo:./abc-file.out ./.;ssh -l parallel lo -- \(rm\ -f\ ./.TMPWORKDIR/abc-file\;\ sh\ -c\ \'rmdir\ ./.TMPWORKDIR/\ ./.parallel/tmp/\ ./.parallel/\ 2\>/dev/null\'\;rm\ -rf\ ./.TMPWORKDIR\;\);ssh -l parallel lo -- \(rm\ -f\ ./.TMPWORKDIR/abc-file.out\;\ sh\ -c\ \'rmdir\ ./.TMPWORKDIR/\ ./.parallel/tmp/\ ./.parallel/\ 2\>/dev/null\'\;rm\ -rf\ ./.TMPWORKDIR\;\);ssh -l parallel lo -- rm -rf .TMPWORKDIR; exit $_EXIT_status;
( ssh -l parallel lo -- mkdir -p ./.TMPWORKDIR;rsync --protocol 30 -rlDzR -essh\ -l\ parallel ./abc-file lo:./.TMPWORKDIR );ssh -l parallel lo -- exec perl -e \''@GNU_Parallel=("use","IPC::Open3;","use","MIME::Base64");eval"@GNU_Parallel";my$eval;$eval=decode_base64(join"",@ARGV);eval$eval;'\' BASE64 BASE64;_EXIT_status=$?; mkdir -p ./.; rsync --protocol 30 --rsync-path=cd\ ./.TMPWORKDIR/./.\;\ rsync -rlDzR -essh\ -l\ parallel lo:./abc-file.out ./.;ssh -l parallel lo -- \(rm\ -f\ ./.TMPWORKDIR/abc-file\;\ sh\ -c\ \'rmdir\ ./.TMPWORKDIR/\ ./.parallel/tmp/\ ./.parallel/\ 2\>/dev/null\'\;rm\ -rf\ ./.TMPWORKDIR\;\);ssh -l parallel lo -- \(rm\ -f\ ./.TMPWORKDIR/abc-file.out\;\ sh\ -c\ \'rmdir\ ./.TMPWORKDIR/\ ./.parallel/tmp/\ ./.parallel/\ 2\>/dev/null\'\;rm\ -rf\ ./.TMPWORKDIR\;\);ssh -l parallel lo -- rm -rf .TMPWORKDIR; exit $_EXIT_status;
vendor://[[user][:password]@][host][:port]/[database[/table]
/bin/bash: vendor://[[user][:password]@][host][:port]/[database[/table]: No such file or directory
sqlite3:///%2Ftmp%2Fmydatabase/mytable
/bin/bash: sqlite3:///%2Ftmp%2Fmydatabase/mytable: No such file or directory
DBURL=sqlite3:///%2Ftmp%2Fmydatabase
DBURLTABLE=$DBURL/mytable
parallel --sqlandworker $DBURLTABLE echo ::: foo bar ::: baz quuz
foo baz
foo quuz
bar baz
bar quuz
sql $DBURL 'SELECT * FROM mytable ORDER BY Seq;'
Error:
SELECT * FROM mytable ORDER BY Seq; is not a valid DBURL
sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command]
parallel --sql $DBURLTABLE echo ::: foo bar ::: baz quuz
parallel: Error: echo is not a valid DBURL
parallel --sqlworker $DBURLTABLE echo ::: foo bar ::: baz quuz
parallel: Error: echo is not a valid DBURL
cat num1000000 | parallel --pipe wc
165668 165668 1048571
149796 149796 1048572
@ -789,7 +890,7 @@ JOB3
JOB4
qux/,
END
echo /foo, bar/, /baz, qux/, | parallel -kN1 --recstart '/' --pipe echo JOB{#}\;cat\;echo END
echo /foo, bar/, /baz, qux/, | parallel -kN1 --recstart / --pipe echo JOB{#}\;cat\;echo END
JOB1
/foo, barEND
JOB2
@ -799,13 +900,13 @@ JOB3
JOB4
/,
END
echo /foo, bar/, /baz, qux/, | parallel -kN1 --recend ', ' --recstart '/' --pipe echo JOB{#}\;cat\;echo END
echo /foo, bar/, /baz, qux/, | parallel -kN1 --recend ', ' --recstart / --pipe echo JOB{#}\;cat\;echo END
JOB1
/foo, bar/, END
JOB2
/baz, qux/,
END
echo foo,bar,_baz,__qux, | parallel -kN1 --regexp --recend ',_+' --pipe echo JOB{#}\;cat\;echo END
echo foo,bar,_baz,__qux, | parallel -kN1 --regexp --recend ,_+ --pipe echo JOB{#}\;cat\;echo END
JOB1
foo,bar,_END
JOB2
@ -813,7 +914,7 @@ baz,__END
JOB3
qux,
END
echo foo,bar,_baz,__qux, | parallel -kN1 --rrs --regexp --recend ',_+' --pipe echo JOB{#}\;cat\;echo END
echo foo,bar,_baz,__qux, | parallel -kN1 --rrs --regexp --recend ,_+ --pipe echo JOB{#}\;cat\;echo END
JOB1
foo,barEND
JOB2
@ -902,6 +1003,99 @@ Warning: unknown mime-type for "@ARGV\n" -- using "application/octet-stream"
Error: no such file "@ARGV\n"
perl_echo foo bar
/bin/bash: perl_echo: command not found
#!/usr/bin/parallel --shebang-wrap /usr/bin/perl
print "Arguments @ARGV\n";
Warning: unknown mime-type for "Arguments @ARGV\n" -- using "application/octet-stream"
Error: no such file "Arguments @ARGV\n"
#!/usr/bin/parallel --shebang-wrap /usr/bin/python
print 'Arguments', str(sys.argv)
/bin/bash: -c: line 3: syntax error near unexpected token `('
/bin/bash: -c: line 3: ` print 'Arguments', str(sys.argv)'
#!/usr/bin/parallel --shebang-wrap /bin/bash
echo Arguments "$@"
Arguments
#!/usr/bin/parallel --shebang-wrap /bin/csh
echo Arguments "$argv"
Arguments
#!/usr/bin/parallel --shebang-wrap /usr/bin/tclsh
puts "Arguments $argv"
/bin/bash: line 2: puts: command not found
#!/usr/bin/parallel --shebang-wrap /usr/bin/Rscript --vanilla --slave
args <- commandArgs(trailingOnly = TRUE)
print(paste("Arguments ",args))
/bin/bash: -c: line 2: syntax error near unexpected token `('
/bin/bash: -c: line 2: ` args <- commandArgs(trailingOnly = TRUE)'
#!/usr/bin/parallel --shebang-wrap ARG={} /usr/bin/gnuplot
print "Arguments ", system('echo $ARG')
/bin/bash: -c: line 2: syntax error near unexpected token `('
/bin/bash: -c: line 2: ` print "Arguments ", system('echo $ARG')'
#!/usr/bin/parallel --shebang-wrap /usr/bin/ruby
print "Arguments "
puts ARGV
Warning: unknown mime-type for "Arguments " -- using "application/octet-stream"
Error: no such file "Arguments "
/bin/bash: line 3: puts: command not found
#!/usr/bin/parallel --shebang-wrap /usr/bin/octave
printf ("Arguments");
arg_list = argv ();
for i = 1:nargin
printf (" %s", arg_list{i});
endfor
printf ("\n");
/bin/bash: -c: line 2: syntax error near unexpected token `"Arguments"'
/bin/bash: -c: line 2: ` printf ("Arguments");'
#!/usr/bin/parallel --shebang-wrap /usr/bin/clisp
(format t "~&~S~&" 'Arguments)
(format t "~&~S~&" *args*)
/bin/bash: -c: line 2: unexpected EOF while looking for matching `''
/bin/bash: -c: line 4: syntax error: unexpected end of file
#!/usr/bin/parallel --shebang-wrap /usr/bin/php
<?php
echo "Arguments";
foreach(array_slice($argv,1) as $v)
{
echo " $v";
}
echo "\n";
?>
Arguments
/bin/bash: line 1: ?php: No such file or directory
/bin/bash: -c: line 3: syntax error near unexpected token `array_slice'
/bin/bash: -c: line 3: ` foreach(array_slice($argv,1) as $v)'
#!/usr/bin/parallel --shebang-wrap /usr/bin/node
var myArgs = process.argv.slice(2);
console.log('Arguments ', myArgs);
/bin/bash: -c: line 0: syntax error near unexpected token `('
/bin/bash: -c: line 0: ` var myArgs = process.argv.slice(2);'
#!/usr/bin/parallel --shebang-wrap /usr/bin/lua
io.write "Arguments"
for a = 1, #arg do
io.write(" ")
io.write(arg[a])
end
print("")
/bin/bash: line 2: io.write: command not found
/bin/bash: -c: line 3: syntax error near unexpected token `='
/bin/bash: -c: line 3: ` for a = 1, #arg do'
#!/usr/bin/parallel --shebang-wrap ARGV={} /usr/bin/csharp
var argv = Environment.GetEnvironmentVariable("ARGV");
print("Arguments "+argv);
/bin/bash: -c: line 2: syntax error near unexpected token `('
/bin/bash: -c: line 2: ` var argv = Environment.GetEnvironmentVariable("ARGV");'
sem 'sleep 1; echo The first finished' &&
echo The first is now running in the background &&
sem 'sleep 1; echo The second finished' &&
@ -910,7 +1104,6 @@ Error: no such file "@ARGV\n"
The first is now running in the background
The first finished
The second is now running in the background
The second finished
sem --fg 'sleep 1; echo The first finished' &&
echo The first finished running in the foreground &&
sem --fg 'sleep 1; echo The second finished' &&
@ -918,7 +1111,6 @@ The second finished
sem --wait
The first finished
The first finished running in the foreground
The second finished
The second finished running in the foreground
sem --id my_id -u 'echo First started; sleep 10; echo The first finished'
First started
@ -932,7 +1124,6 @@ The first finished
First started
The first finished
Third started
The second finished
Fourth started
The third finished
The fourth finished
@ -983,18 +1174,6 @@ please cite:
This helps funding further development; AND IT WON'T COST YOU A CENT.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
parallel --version
GNU parallel VERSION
Copyright (C) 2007,2008,2009,2010,2011,2012,2013,2014,2015 Ole Tange
and Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
GNU parallel comes with no warranty.
Web site: http://www.gnu.org/software/parallel
When using programs that use GNU Parallel to process data for publication
please cite as described in 'parallel --bibtex'.
parallel --minversion VERSION && echo Your version is at least VERSION.
VERSION
Your version is at least VERSION.