mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-22 14:07:55 +00:00
testsuite: more testing of --halt.
This commit is contained in:
parent
fc0c6cee08
commit
5306f0f396
|
@ -59,4 +59,4 @@ upload:
|
||||||
pushd; \
|
pushd; \
|
||||||
sudo cp /usr/local/bin/parallel /usr/local/bin/parallel-$(YYYYMMDD)
|
sudo cp /usr/local/bin/parallel /usr/local/bin/parallel-$(YYYYMMDD)
|
||||||
|
|
||||||
EXTRA_DIST = CITATION
|
EXTRA_DIST = CITATION CREDITS
|
||||||
|
|
|
@ -263,7 +263,7 @@ top_build_prefix = @top_build_prefix@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
SUBDIRS = src
|
SUBDIRS = src
|
||||||
EXTRA_DIST = CITATION
|
EXTRA_DIST = CITATION CREDITS
|
||||||
all: config.h
|
all: config.h
|
||||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||||
|
|
||||||
|
|
|
@ -228,8 +228,12 @@ New in this release:
|
||||||
|
|
||||||
* <<afventer opdatering>> GNU Parallel was used (unfortunately without citation) in: MUGBAS: a species free gene-based programme suite for post-GWAS analysis http://www.ncbi.nlm.nih.gov/pubmed/25765345
|
* <<afventer opdatering>> GNU Parallel was used (unfortunately without citation) in: MUGBAS: a species free gene-based programme suite for post-GWAS analysis http://www.ncbi.nlm.nih.gov/pubmed/25765345
|
||||||
|
|
||||||
|
http://biorxiv.org/content/biorxiv/early/2015/05/05/018085.full.pdf
|
||||||
|
|
||||||
taxator-tk http://algbio.cs.uni-duesseldorf.de/webapps/wa-download/ (check it)
|
taxator-tk http://algbio.cs.uni-duesseldorf.de/webapps/wa-download/ (check it)
|
||||||
|
|
||||||
|
* <<har ikke svaret og accepteret ansvar>> GNU Parallel was used in: Large Scale Author Name Disambiguation in Digital Libraries http://ieeexplore.ieee.org/xpl/abstractReferences.jsp?tp=&arnumber=7004487&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D7004487
|
||||||
|
|
||||||
* << afventer svar fra Rachel >> GNU Parallel was used in: SISRS: Site Identification from Short Read Sequences https://github.com/rachelss/SISRS/
|
* << afventer svar fra Rachel >> GNU Parallel was used in: SISRS: Site Identification from Short Read Sequences https://github.com/rachelss/SISRS/
|
||||||
|
|
||||||
* GNU Parallel was cited in: Toward Enhanced Metadata Quality of Large-Scale Digital Libraries: Estimating Volume Time Range https://www.ideals.illinois.edu/bitstream/handle/2142/73656/186_ready.pdf
|
* GNU Parallel was cited in: Toward Enhanced Metadata Quality of Large-Scale Digital Libraries: Estimating Volume Time Range https://www.ideals.illinois.edu/bitstream/handle/2142/73656/186_ready.pdf
|
||||||
|
|
|
@ -1053,7 +1053,7 @@ sub parse_options {
|
||||||
|
|
||||||
sub init_globals {
|
sub init_globals {
|
||||||
# Defaults:
|
# Defaults:
|
||||||
$Global::version = 20150426;
|
$Global::version = 20150503;
|
||||||
$Global::progname = 'parallel';
|
$Global::progname = 'parallel';
|
||||||
$Global::infinity = 2**31;
|
$Global::infinity = 2**31;
|
||||||
$Global::debug = 0;
|
$Global::debug = 0;
|
||||||
|
@ -1131,7 +1131,7 @@ sub parse_halt {
|
||||||
# Split: soon,fail=5%
|
# Split: soon,fail=5%
|
||||||
my ($when,$fail_success,$pct_count) = split /[,=]/, $opt::halt;
|
my ($when,$fail_success,$pct_count) = split /[,=]/, $opt::halt;
|
||||||
if(not grep { $when eq $_ } qw(never soon now)) {
|
if(not grep { $when eq $_ } qw(never soon now)) {
|
||||||
::error("--halt must have 'never', 'soon', or 'now'");
|
::error("--halt must have 'never', 'soon', or 'now'\n");
|
||||||
}
|
}
|
||||||
$Global::halt_when = $when;
|
$Global::halt_when = $when;
|
||||||
if($when ne "never") {
|
if($when ne "never") {
|
||||||
|
@ -7495,7 +7495,7 @@ sub set_exitsignal {
|
||||||
if($Global::halt_count and $Global::halt_count == 1) {
|
if($Global::halt_count and $Global::halt_count == 1) {
|
||||||
$Global::halt_exitstatus = $job->exitstatus();
|
$Global::halt_exitstatus = $job->exitstatus();
|
||||||
} else {
|
} else {
|
||||||
$Global::halt_exitstatus = $Global::total_failed;
|
$Global::halt_exitstatus = ::min($Global::total_failed,254);
|
||||||
}
|
}
|
||||||
::debug("halt","Pct: ",$Global::halt_pct,"<=",$Global::total_failed / $Global::total_started," count: ",$Global::halt_count,"\n");
|
::debug("halt","Pct: ",$Global::halt_pct,"<=",$Global::total_failed / $Global::total_started," count: ",$Global::halt_count,"\n");
|
||||||
if($Global::halt_when eq "soon"
|
if($Global::halt_when eq "soon"
|
||||||
|
|
|
@ -809,8 +809,9 @@ See also B<--resume> B<--resume-failed>.
|
||||||
|
|
||||||
=item B<-P> I<N>
|
=item B<-P> I<N>
|
||||||
|
|
||||||
Number of jobslots. Run up to N jobs in parallel. 0 means as many as
|
Number of jobslots on each machine. Run up to N jobs in parallel. 0
|
||||||
possible. Default is 100% which will run one job per CPU core.
|
means as many as possible. Default is 100% which will run one job per
|
||||||
|
CPU core on each machine.
|
||||||
|
|
||||||
If B<--semaphore> is set default is 1 thus making a mutex.
|
If B<--semaphore> is set default is 1 thus making a mutex.
|
||||||
|
|
||||||
|
@ -1498,7 +1499,7 @@ to do anything.
|
||||||
|
|
||||||
Work as a counting semaphore. B<--semaphore> will cause GNU
|
Work as a counting semaphore. B<--semaphore> will cause GNU
|
||||||
B<parallel> to start I<command> in the background. When the number of
|
B<parallel> to start I<command> in the background. When the number of
|
||||||
simultaneous jobs is reached, GNU B<parallel> will wait for one of
|
jobs given by B<--jobs> is reached, GNU B<parallel> will wait for one of
|
||||||
these to complete before starting another command.
|
these to complete before starting another command.
|
||||||
|
|
||||||
B<--semaphore> implies B<--bg> unless B<--fg> is specified.
|
B<--semaphore> implies B<--bg> unless B<--fg> is specified.
|
||||||
|
|
|
@ -1969,7 +1969,19 @@
|
||||||
|
|
||||||
<p>GNU Parallel can work as a counting semaphore. This is slower and less efficient than its normal mode.</p>
|
<p>GNU Parallel can work as a counting semaphore. This is slower and less efficient than its normal mode.</p>
|
||||||
|
|
||||||
<p>An alias for 'parallel --semaphore' is 'sem'. The default is to allow only one program to run at a time (technically called a mutex). The program is started in the background. Use --wait for all 'sem's to finish:</p>
|
<p>A counting semaphore is like a row of toilets. People needing a toilet can use any toilet, but if there are more people than toilets, they will have to wait for one of the toilets to be available.</p>
|
||||||
|
|
||||||
|
<p>An alias for 'parallel --semaphore' is 'sem'.</p>
|
||||||
|
|
||||||
|
<p>'sem' will follow a person to the toilets, wait until a toilet is available, leave the person in the toilet and exit.</p>
|
||||||
|
|
||||||
|
<p>'sem --fg' will follow a person to the toilets, wait until a toilet is available, stay with the person in the toilet and exit when the person exits.</p>
|
||||||
|
|
||||||
|
<p>'sem --wait' will wait for all persons to leave the toilets.</p>
|
||||||
|
|
||||||
|
<p>'sem' does not have a queue discipline, so the next person is chosen randomly.</p>
|
||||||
|
|
||||||
|
<p>-j sets the number of toilets. The default is to have only one toilet (technically this is called a mutex). The program is started in the background and 'sem' exits immediately. Use --wait to wait for all 'sem's to finish:</p>
|
||||||
|
|
||||||
<pre><code> sem 'sleep 1; echo The first finished' &&
|
<pre><code> sem 'sleep 1; echo The first finished' &&
|
||||||
echo The first is now running in the background &&
|
echo The first is now running in the background &&
|
||||||
|
@ -1984,7 +1996,7 @@
|
||||||
The second is now running in the background
|
The second is now running in the background
|
||||||
The second finished</code></pre>
|
The second finished</code></pre>
|
||||||
|
|
||||||
<p>The command can be run in the foreground with --fg:</p>
|
<p>The command can be run in the foreground with --fg, which will only exit when the command completes:</p>
|
||||||
|
|
||||||
<pre><code> sem --fg 'sleep 1; echo The first finished' &&
|
<pre><code> sem --fg 'sleep 1; echo The first finished' &&
|
||||||
echo The first finished running in the foreground &&
|
echo The first finished running in the foreground &&
|
||||||
|
|
|
@ -1965,10 +1965,28 @@ This technique can be used for:
|
||||||
GNU Parallel can work as a counting semaphore. This is slower and less
|
GNU Parallel can work as a counting semaphore. This is slower and less
|
||||||
efficient than its normal mode.
|
efficient than its normal mode.
|
||||||
|
|
||||||
An alias for 'parallel --semaphore' is 'sem'. The default is to allow
|
A counting semaphore is like a row of toilets. People needing a toilet
|
||||||
only one program to run at a time (technically called a mutex). The
|
can use any toilet, but if there are more people than toilets, they
|
||||||
program is started in the background. Use --wait for all 'sem's to
|
will have to wait for one of the toilets to be available.
|
||||||
finish:
|
|
||||||
|
An alias for 'parallel --semaphore' is 'sem'.
|
||||||
|
|
||||||
|
'sem' will follow a person to the toilets, wait until a toilet is
|
||||||
|
available, leave the person in the toilet and exit.
|
||||||
|
|
||||||
|
'sem --fg' will follow a person to the toilets, wait until a toilet is
|
||||||
|
available, stay with the person in the toilet and exit when the person
|
||||||
|
exits.
|
||||||
|
|
||||||
|
'sem --wait' will wait for all persons to leave the toilets.
|
||||||
|
|
||||||
|
'sem' does not have a queue discipline, so the next person is chosen
|
||||||
|
randomly.
|
||||||
|
|
||||||
|
-j sets the number of toilets. The default is to have only one toilet
|
||||||
|
(technically this is called a mutex). The program is started in the
|
||||||
|
background and 'sem' exits immediately. Use --wait to wait for all
|
||||||
|
'sem's to finish:
|
||||||
|
|
||||||
sem 'sleep 1; echo The first finished' &&
|
sem 'sleep 1; echo The first finished' &&
|
||||||
echo The first is now running in the background &&
|
echo The first is now running in the background &&
|
||||||
|
@ -1983,7 +2001,8 @@ Output:
|
||||||
The second is now running in the background
|
The second is now running in the background
|
||||||
The second finished
|
The second finished
|
||||||
|
|
||||||
The command can be run in the foreground with --fg:
|
The command can be run in the foreground with --fg, which will only
|
||||||
|
exit when the command completes:
|
||||||
|
|
||||||
sem --fg 'sleep 1; echo The first finished' &&
|
sem --fg 'sleep 1; echo The first finished' &&
|
||||||
echo The first finished running in the foreground &&
|
echo The first finished running in the foreground &&
|
||||||
|
|
|
@ -148,6 +148,12 @@ echo '**'
|
||||||
parallel --halt 2 ::: 'sleep 1' burnP6 false; killall burnP6 && echo ERROR: burnP6 should be killed
|
parallel --halt 2 ::: 'sleep 1' burnP6 false; killall burnP6 && echo ERROR: burnP6 should be killed
|
||||||
parallel --halt -2 ::: 'sleep 1' burnP5 true; killall burnP5 && echo ERROR: burnP5 should be killed
|
parallel --halt -2 ::: 'sleep 1' burnP5 true; killall burnP5 && echo ERROR: burnP5 should be killed
|
||||||
|
|
||||||
|
echo '**'
|
||||||
|
|
||||||
|
echo '### bug #44995: parallel echo {#} ::: 1 2 ::: 1 2'
|
||||||
|
|
||||||
|
parallel -k echo {#} ::: 1 2 ::: 1 2
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
echo '### 1 .par file from --files expected'
|
echo '### 1 .par file from --files expected'
|
||||||
find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | wc -l
|
find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | wc -l
|
||||||
|
|
|
@ -74,6 +74,19 @@ echo '### Test last dying print --halt-on-error -2';
|
||||||
|
|
||||||
echo '**'
|
echo '**'
|
||||||
|
|
||||||
|
testhalt() {
|
||||||
|
echo '### testhalt --halt '$1;
|
||||||
|
(yes 0 | head -n 10; seq 10) | stdout parallel -kj4 --halt $1 'sleep {= $_*=0.3 =}; exit {}'; echo $?;
|
||||||
|
(seq 10; yes 0 | head -n 10) | stdout parallel -kj4 --halt $1 'sleep {= $_*=0.3 =}; 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%
|
||||||
|
|
||||||
|
echo '**'
|
||||||
|
|
||||||
echo '### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834';
|
echo '### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834';
|
||||||
seq 1 3 | parallel -j1 "sleep 2; echo {}" | parallel -kj2 echo
|
seq 1 3 | parallel -j1 "sleep 2; echo {}" | parallel -kj2 echo
|
||||||
|
|
||||||
|
@ -83,7 +96,7 @@ echo '### Are children killed if GNU Parallel receives TERM twice? There should
|
||||||
|
|
||||||
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 &
|
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 &
|
||||||
T=$!;
|
T=$!;
|
||||||
sleep 1;
|
sleep 2;
|
||||||
pstree $$;
|
pstree $$;
|
||||||
kill -TERM $T;
|
kill -TERM $T;
|
||||||
sleep 1;
|
sleep 1;
|
||||||
|
@ -98,7 +111,7 @@ echo '### Are children killed if GNU Parallel receives INT twice? There should b
|
||||||
|
|
||||||
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 &
|
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 &
|
||||||
T=$!;
|
T=$!;
|
||||||
sleep 1;
|
sleep 2;
|
||||||
pstree $$;
|
pstree $$;
|
||||||
kill -INT $T;
|
kill -INT $T;
|
||||||
sleep 1;
|
sleep 1;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1
|
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1
|
||||||
echo '### bug #36595: silent loss of input with --pipe and --sshlogin'
|
echo '### bug #36595: silent loss of input with --pipe and --sshlogin'
|
||||||
seq 10000 | xargs | parallel --pipe -S 10/localhost cat | wc
|
seq 10000 | xargs | parallel --pipe -S 10/localhost cat 2>/dev/null | wc
|
||||||
|
|
||||||
echo 'bug #36707: --controlmaster eats jobs'
|
echo 'bug #36707: --controlmaster eats jobs'
|
||||||
seq 2 | parallel -k --controlmaster --sshlogin localhost echo OK{}
|
seq 2 | parallel -k --controlmaster --sshlogin localhost echo OK{}
|
||||||
|
|
|
@ -317,5 +317,14 @@ parallel --halt -2 ::: 'sleep 1' burnP5 true; killall burnP5 && echo ERROR: burn
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
true
|
true
|
||||||
burnP5: no process found
|
burnP5: no process found
|
||||||
|
echo '**'
|
||||||
|
**
|
||||||
|
echo '### bug #44995: parallel echo {#} ::: 1 2 ::: 1 2'
|
||||||
|
### bug #44995: parallel echo {#} ::: 1 2 ::: 1 2
|
||||||
|
parallel -k echo {#} ::: 1 2 ::: 1 2
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
### 1 .par file from --files expected
|
### 1 .par file from --files expected
|
||||||
1
|
1
|
||||||
|
|
|
@ -157,6 +157,566 @@ parallel: This job succeeded:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 1
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 1
|
||||||
echo '**'
|
echo '**'
|
||||||
**
|
**
|
||||||
|
testhalt() { echo '### testhalt --halt '$1; (yes 0 | head -n 10; seq 10) | stdout parallel -kj4 --halt $1 'sleep {= $_*=0.3 =}; exit {}'; echo $?; (seq 10; yes 0 | head -n 10) | stdout parallel -kj4 --halt $1 'sleep {= $_*=0.3 =}; 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 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.1; exit 7
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.4; exit 8
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.7; exit 9
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 3; exit 10
|
||||||
|
0
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.1; exit 7
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.4; exit 8
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.7; exit 9
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 3; exit 10
|
||||||
|
0
|
||||||
|
### testhalt --halt now,fail=1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
1
|
||||||
|
### testhalt --halt now,fail=2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
2
|
||||||
|
### testhalt --halt now,fail=30%
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
6
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
4
|
||||||
|
### testhalt --halt now,fail=70%
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.1; exit 7
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.4; exit 8
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.7; exit 9
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 3; exit 10
|
||||||
|
0
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.1; exit 7
|
||||||
|
7
|
||||||
|
### testhalt --halt soon,fail=0
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.1; exit 7
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.4; exit 8
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.7; exit 9
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 3; exit 10
|
||||||
|
0
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.1; exit 7
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.4; exit 8
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.7; exit 9
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 3; exit 10
|
||||||
|
0
|
||||||
|
### testhalt --halt soon,fail=1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
4
|
||||||
|
### testhalt --halt soon,fail=2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
5
|
||||||
|
### testhalt --halt soon,fail=30%
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.1; exit 7
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.4; exit 8
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.7; exit 9
|
||||||
|
9
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.1; exit 7
|
||||||
|
7
|
||||||
|
### testhalt --halt soon,fail=70%
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.1; exit 7
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.4; exit 8
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.7; exit 9
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 3; exit 10
|
||||||
|
0
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.3; exit 1
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.6; exit 2
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 0.9; exit 3
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.2; exit 4
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.1; exit 7
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.4; exit 8
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 2.7; exit 9
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 3; exit 10
|
||||||
|
10
|
||||||
|
### testhalt --halt now,success=0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
7
|
||||||
|
### testhalt --halt now,success=1
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
### testhalt --halt now,success=2
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
### testhalt --halt now,success=30%
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
### testhalt --halt now,success=70%
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
7
|
||||||
|
### testhalt --halt soon,success=0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
7
|
||||||
|
### testhalt --halt soon,success=1
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
0
|
||||||
|
### testhalt --halt soon,success=2
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
0
|
||||||
|
### testhalt --halt soon,success=30%
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
0
|
||||||
|
### testhalt --halt now,success=70%
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
7
|
||||||
|
echo '**'
|
||||||
|
**
|
||||||
echo '### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834'; seq 1 3 | parallel -j1 "sleep 2; echo {}" | parallel -kj2 echo
|
echo '### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834'; seq 1 3 | parallel -j1 "sleep 2; echo {}" | parallel -kj2 echo
|
||||||
### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834
|
### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834
|
||||||
1
|
1
|
||||||
|
@ -166,7 +726,7 @@ echo '**'
|
||||||
**
|
**
|
||||||
echo '### Are children killed if GNU Parallel receives TERM twice? There should be no sleep at the end'
|
echo '### Are children killed if GNU Parallel receives TERM twice? There should be no sleep at the end'
|
||||||
### Are children killed if GNU Parallel receives TERM twice? There should be no sleep at the end
|
### Are children killed if GNU Parallel receives TERM twice? There should be no sleep at the end
|
||||||
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 & T=$!; sleep 1; pstree $$; kill -TERM $T; sleep 1; pstree $$; kill -TERM $T; sleep 1; pstree $$; echo '**'
|
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 & T=$!; sleep 2; pstree $$; kill -TERM $T; sleep 1; pstree $$; kill -TERM $T; sleep 1; pstree $$; echo '**'
|
||||||
bash-+-perl---bash---sleep
|
bash-+-perl---bash---sleep
|
||||||
`-pstree
|
`-pstree
|
||||||
bash-+-perl---bash---sleep
|
bash-+-perl---bash---sleep
|
||||||
|
@ -178,7 +738,7 @@ parallel: Waiting for these 1 jobs to finish. Send SIGTERM again to stop now.
|
||||||
parallel: bash -c sleep\ 120\ \&\ pid=\$\!\;\ wait\ \$pid 1
|
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'
|
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
|
### 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 1; pstree $$; kill -INT $T; sleep 1; pstree $$;
|
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 & T=$!; sleep 2; pstree $$; kill -INT $T; sleep 1; pstree $$;
|
||||||
bash-+-perl---bash---sleep
|
bash-+-perl---bash---sleep
|
||||||
`-pstree
|
`-pstree
|
||||||
bash---pstree
|
bash---pstree
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
echo '### bug #36595: silent loss of input with --pipe and --sshlogin'
|
echo '### bug #36595: silent loss of input with --pipe and --sshlogin'
|
||||||
### bug #36595: silent loss of input with --pipe and --sshlogin
|
### bug #36595: silent loss of input with --pipe and --sshlogin
|
||||||
seq 10000 | xargs | parallel --pipe -S 10/localhost cat | wc
|
seq 10000 | xargs | parallel --pipe -S 10/localhost cat 2>/dev/null | wc
|
||||||
1 10000 48894
|
1 10000 48894
|
||||||
echo 'bug #36707: --controlmaster eats jobs'
|
echo 'bug #36707: --controlmaster eats jobs'
|
||||||
bug #36707: --controlmaster eats jobs
|
bug #36707: --controlmaster eats jobs
|
||||||
|
|
|
@ -939,7 +939,7 @@ 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.
|
If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
|
||||||
|
|
||||||
parallel --version
|
parallel --version
|
||||||
GNU parallel 20150426
|
GNU parallel 20150502
|
||||||
Copyright (C) 2007,2008,2009,2010,2011,2012,2013,2014,2015 Ole Tange
|
Copyright (C) 2007,2008,2009,2010,2011,2012,2013,2014,2015 Ole Tange
|
||||||
and Free Software Foundation, Inc.
|
and Free Software Foundation, Inc.
|
||||||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
||||||
|
@ -951,7 +951,7 @@ Web site: http://www.gnu.org/software/parallel
|
||||||
When using programs that use GNU Parallel to process data for publication
|
When using programs that use GNU Parallel to process data for publication
|
||||||
please cite as described in 'parallel --bibtex'.
|
please cite as described in 'parallel --bibtex'.
|
||||||
parallel --minversion 20130722 && echo Your version is at least 20130722.
|
parallel --minversion 20130722 && echo Your version is at least 20130722.
|
||||||
20150426
|
20150502
|
||||||
Your version is at least 20130722.
|
Your version is at least 20130722.
|
||||||
parallel --bibtex
|
parallel --bibtex
|
||||||
Academic tradition requires you to cite works you base your article on.
|
Academic tradition requires you to cite works you base your article on.
|
||||||
|
@ -997,4 +997,4 @@ C
|
||||||
\nice -n17 /bin/bash -c echo\ A
|
\nice -n17 /bin/bash -c echo\ A
|
||||||
\nice -n17 /bin/bash -c echo\ B
|
\nice -n17 /bin/bash -c echo\ B
|
||||||
\nice -n17 /bin/bash -c echo\ C
|
\nice -n17 /bin/bash -c echo\ C
|
||||||
6
|
7
|
||||||
|
|
Loading…
Reference in a new issue