mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-26 07:57:58 +00:00
parallel: --halt returns 0..100.
Passes testsuite.
This commit is contained in:
parent
5306f0f396
commit
35cbf61ecf
|
@ -222,29 +222,30 @@ Haiku of the month:
|
||||||
|
|
||||||
New in this release:
|
New in this release:
|
||||||
|
|
||||||
* <<afventer - rykket >> Comparing the CarbonTracker and TM5-4DVar data assimilation systems for CO2 surface flux inversions http://www.atmos-chem-phys-discuss.net/15/8883/2015/acpd-15-8883-2015-discussion.html
|
* <<Har angiveligt submittet ny version - 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>> CIDER: a pipeline for detecting waves of coordinated transcriptional regulation in gene expression time-course data http://biorxiv.org/content/biorxiv/early/2015/03/17/012518.full.pdf
|
|
||||||
|
|
||||||
* <<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
|
* <<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/
|
* << Update forventet juni >> GNU Parallel was used in: SISRS: Site Identification from Short Read Sequences https://github.com/rachelss/SISRS/
|
||||||
|
|
||||||
|
* <<kontaktet 2015-05-06>> GNU Parallel was used (unfortunately with wrong citation) in: TADSim: Discrete Event-Based Performance Prediction for Temperature-Accelerated Dynamics http://vruehle.de/publications/2015c.pdf
|
||||||
|
|
||||||
|
|
||||||
|
* GNU Parallel was cited in: CIDER: a pipeline for detecting waves of coordinated transcriptional regulation in gene expression time-course data http://biorxiv.org/content/biorxiv/early/2015/03/17/012518.full.pdf
|
||||||
|
|
||||||
|
* GNU Parallel was cited in: Building Genomic Analysis Pipelines in a Hackathon Setting with Bioinformatician Teams: DNA-seq, Epigenomics, Metagenomics and RNA-seq http://biorxiv.org/content/biorxiv/early/2015/05/05/018085.full.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
|
* 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: Sequencing the cap-snatching repertoire of H1N1 influenza provides insight into the mechanism of viral transcription initiation http://nar.oxfordjournals.org/content/early/2015/04/20/nar.gkv333.full.pdf
|
* GNU Parallel was cited in: Sequencing the cap-snatching repertoire of H1N1 influenza provides insight into the mechanism of viral transcription initiation http://nar.oxfordjournals.org/content/early/2015/04/20/nar.gkv333.full.pdf
|
||||||
|
|
||||||
* GNU Parallel was cited in: Genome assemblyusing Nanopore-guided long and error-free DNA reads http://www.biomedcentral.com/content/pdf/s12864-015-1519-z.pdf
|
* GNU Parallel was cited in: Genome assembly using Nanopore-guided long and error-free DNA reads http://www.biomedcentral.com/content/pdf/s12864-015-1519-z.pdf
|
||||||
|
|
||||||
* GNU Parallel was cited in: Contrasting regional architectures of schizophrenia and other complex diseases using fast variance components analysis http://biorxiv.org/content/biorxiv/early/2015/03/13/016527.full.pdf
|
* GNU Parallel was cited in: Contrasting regional architectures of schizophrenia and other complex diseases using fast variance components analysis http://biorxiv.org/content/biorxiv/early/2015/03/13/016527.full.pdf
|
||||||
|
|
||||||
* <<kontakt>> GNU Parallel was used (unfortunately with wrong citation) in: TADSim: Discrete Event-Based Performance Prediction for Temperature-Accelerated Dynamics http://vruehle.de/publications/2015c.pdf
|
* GNU Parallel was used (unfortunately with wrong citation) in: Comparing the CarbonTracker and TM5-4DVar data assimilation systems for CO2 surface flux inversions http://www.atmos-chem-phys-discuss.net/15/8883/2015/acpd-15-8883-2015-discussion.html
|
||||||
|
|
||||||
* GNU Parallel was used in: Gene Set Omic Analysis (GSOA) method https://bitbucket.org/srp33/gsoa
|
* GNU Parallel was used in: Gene Set Omic Analysis (GSOA) method https://bitbucket.org/srp33/gsoa
|
||||||
|
|
||||||
|
|
77
src/parallel
77
src/parallel
|
@ -110,7 +110,7 @@ if($opt::nonall or $opt::onall) {
|
||||||
$Global::JobQueue = JobQueue->new(
|
$Global::JobQueue = JobQueue->new(
|
||||||
\@command,\@input_source_fh,$Global::ContextReplace,$number_of_args,\@Global::ret_files);
|
\@command,\@input_source_fh,$Global::ContextReplace,$number_of_args,\@Global::ret_files);
|
||||||
|
|
||||||
if($opt::eta or $opt::bar or $opt::shuf) {
|
if($opt::eta or $opt::bar or $opt::shuf or $Global::halt_pct) {
|
||||||
# Count the number of jobs or shuffle all jobs
|
# Count the number of jobs or shuffle all jobs
|
||||||
# before starting any
|
# before starting any
|
||||||
$Global::JobQueue->total_jobs();
|
$Global::JobQueue->total_jobs();
|
||||||
|
@ -162,9 +162,17 @@ for(keys %Global::sshmaster) {
|
||||||
}
|
}
|
||||||
::debug("init", "Halt\n");
|
::debug("init", "Halt\n");
|
||||||
if($opt::halt and $Global::halt_when ne "never") {
|
if($opt::halt and $Global::halt_when ne "never") {
|
||||||
|
if(not defined $Global::halt_exitstatus) {
|
||||||
|
if($Global::halt_pct) {
|
||||||
|
$Global::halt_exitstatus =
|
||||||
|
::ceil($Global::total_failed / $Global::total_started * 100);
|
||||||
|
} elsif($Global::halt_count) {
|
||||||
|
$Global::halt_exitstatus = ::min($Global::total_failed,101);
|
||||||
|
}
|
||||||
|
}
|
||||||
wait_and_exit($Global::halt_exitstatus);
|
wait_and_exit($Global::halt_exitstatus);
|
||||||
} else {
|
} else {
|
||||||
wait_and_exit(min(undef_as_zero($Global::exitstatus),254));
|
wait_and_exit(min(undef_as_zero($Global::exitstatus),101));
|
||||||
}
|
}
|
||||||
|
|
||||||
sub __PIPE_MODE__ {}
|
sub __PIPE_MODE__ {}
|
||||||
|
@ -1093,7 +1101,6 @@ sub init_globals {
|
||||||
$Global::stderr_verbose = 0;
|
$Global::stderr_verbose = 0;
|
||||||
$Global::default_simultaneous_sshlogins = 9;
|
$Global::default_simultaneous_sshlogins = 9;
|
||||||
$Global::exitstatus = 0;
|
$Global::exitstatus = 0;
|
||||||
$Global::halt_exitstatus = 0;
|
|
||||||
$Global::arg_sep = ":::";
|
$Global::arg_sep = ":::";
|
||||||
$Global::arg_file_sep = "::::";
|
$Global::arg_file_sep = "::::";
|
||||||
$Global::trim = 'n';
|
$Global::trim = 'n';
|
||||||
|
@ -3349,16 +3356,14 @@ sub bibtex {
|
||||||
if(open (my $fh, ">", $ENV{'HOME'}."/.parallel/will-cite")) {
|
if(open (my $fh, ">", $ENV{'HOME'}."/.parallel/will-cite")) {
|
||||||
close $fh;
|
close $fh;
|
||||||
print "\nThank you for your support. It is much appreciated. The citation\n",
|
print "\nThank you for your support. It is much appreciated. The citation\n",
|
||||||
"notice is now silenced. You may also use '--will-cite'.\n",
|
"notice is now silenced. For other ways to silence the citation notice\n",
|
||||||
"If you use '--will-cite' in scripts you are expected to pay\n",
|
"see 'man parallel' under '--bibtex'.\n\n";
|
||||||
"the 10000 EUR, because you are making it harder to see the\n",
|
|
||||||
"citation notice.\n\n";
|
|
||||||
} else {
|
} else {
|
||||||
print "\nThank you for your support. It is much appreciated. The citation\n",
|
print "\nThank you for your support. It is much appreciated. The citation\n",
|
||||||
"cannot permanently be silenced. Use '--will-cite' instead.\n",
|
"cannot permanently be silenced. Use '--will-cite' instead.\n",
|
||||||
"If you use '--will-cite' in scripts you are expected to pay\n",
|
"If you use '--will-cite' in scripts you are making it harder to see the\n",
|
||||||
"the 10000 EUR, because you are making it harder to see the\n",
|
"citation notice. However, if you pay 10000 EUR, you should feel free\n",
|
||||||
"citation notice.\n\n";
|
"to use '--will-cite'.\n\n";
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7471,11 +7476,19 @@ sub set_exitsignal {
|
||||||
|
|
||||||
{
|
{
|
||||||
my $status_printed;
|
my $status_printed;
|
||||||
|
my $total_jobs;
|
||||||
|
|
||||||
sub should_we_halt {
|
sub should_we_halt {
|
||||||
# Should we halt? Immediately? Gracefully?
|
# Should we halt? Immediately? Gracefully?
|
||||||
# Returns: N/A
|
# Returns: N/A
|
||||||
my $job = shift;
|
my $job = shift;
|
||||||
|
# --halt # => 1..100 (number of jobs failed, 101 means > 100)
|
||||||
|
# --halt % => 1..100 (pct of jobs failed)
|
||||||
|
if($Global::halt_pct and not $Global::halt_count) {
|
||||||
|
$total_jobs ||= $Global::JobQueue->total_jobs();
|
||||||
|
# From the pct compute the number of jobs that must fail/succeed
|
||||||
|
$Global::halt_count = $total_jobs * $Global::halt_pct;
|
||||||
|
}
|
||||||
if($job->exitstatus() or $job->exitsignal()) {
|
if($job->exitstatus() or $job->exitsignal()) {
|
||||||
# Job failed
|
# Job failed
|
||||||
$Global::exitstatus++;
|
$Global::exitstatus++;
|
||||||
|
@ -7483,21 +7496,23 @@ sub set_exitsignal {
|
||||||
if($Global::halt_fail) {
|
if($Global::halt_fail) {
|
||||||
::status("$Global::progname: This job failed:\n",
|
::status("$Global::progname: This job failed:\n",
|
||||||
$job->replaced(),"\n");
|
$job->replaced(),"\n");
|
||||||
if(($Global::halt_count and
|
if($Global::halt_count <= $Global::total_failed) {
|
||||||
$Global::halt_count <= $Global::total_failed)
|
|
||||||
or
|
|
||||||
($Global::halt_pct and
|
|
||||||
$Global::halt_pct <=
|
|
||||||
$Global::total_failed / $Global::total_started
|
|
||||||
and $Global::total_failed > 3)) {
|
|
||||||
# At least N jobs had failed
|
# At least N jobs had failed
|
||||||
# or at least N% had failed and more than 3
|
if(not defined $Global::halt_exitstatus) {
|
||||||
if($Global::halt_count and $Global::halt_count == 1) {
|
if($Global::halt_pct) {
|
||||||
$Global::halt_exitstatus = $job->exitstatus();
|
# --halt now,fail=X% or soon,fail=X%
|
||||||
} else {
|
$Global::halt_exitstatus =
|
||||||
$Global::halt_exitstatus = ::min($Global::total_failed,254);
|
::ceil($Global::total_failed / $total_jobs * 100);
|
||||||
|
} elsif($Global::halt_count) {
|
||||||
|
# --halt now,fail=X or soon,fail=X
|
||||||
|
$Global::halt_exitstatus = ::min($Global::total_failed,101);
|
||||||
}
|
}
|
||||||
::debug("halt","Pct: ",$Global::halt_pct,"<=",$Global::total_failed / $Global::total_started," count: ",$Global::halt_count,"\n");
|
if($Global::halt_count and $Global::halt_count == 1) {
|
||||||
|
# --halt now,fail=1 or soon,fail=1
|
||||||
|
$Global::halt_exitstatus = $job->exitstatus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::debug("halt","Pct: ",$Global::halt_pct," count: ",$Global::halt_count,"\n");
|
||||||
if($Global::halt_when eq "soon"
|
if($Global::halt_when eq "soon"
|
||||||
and scalar(keys %Global::running) > 0) {
|
and scalar(keys %Global::running) > 0) {
|
||||||
::status
|
::status
|
||||||
|
@ -7511,20 +7526,14 @@ sub set_exitsignal {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if($Global::halt_success) {
|
if($Global::halt_success) {
|
||||||
$Global::halt_exitstatus = $Global::total_failed;
|
::debug("halt","Pct: ",$Global::halt_pct,"<=",
|
||||||
|
" count: ",$Global::halt_count,"\n");
|
||||||
::status("$Global::progname: This job succeeded:\n",
|
::status("$Global::progname: This job succeeded:\n",
|
||||||
$job->replaced(),"\n");
|
$job->replaced(),"\n");
|
||||||
if(($Global::halt_count and
|
if($Global::halt_count <=
|
||||||
$Global::halt_count <=
|
$Global::total_completed-$Global::total_failed) {
|
||||||
$Global::total_completed-$Global::total_failed)
|
|
||||||
or
|
|
||||||
($Global::halt_pct and
|
|
||||||
$Global::halt_pct <=
|
|
||||||
($Global::total_completed-$Global::total_failed)
|
|
||||||
/ $Global::total_completed
|
|
||||||
and ($Global::total_completed-$Global::total_failed) > 3)) {
|
|
||||||
# At least N jobs had success
|
# At least N jobs had success
|
||||||
# or at least N% had success and more than 3
|
# or at least N% had success
|
||||||
$Global::halt_exitstatus = 0;
|
$Global::halt_exitstatus = 0;
|
||||||
if($Global::halt_when eq "soon"
|
if($Global::halt_when eq "soon"
|
||||||
and scalar(keys %Global::running) > 0) {
|
and scalar(keys %Global::running) > 0) {
|
||||||
|
|
103
src/parallel.pod
103
src/parallel.pod
|
@ -422,9 +422,19 @@ Implies B<--semaphore>.
|
||||||
|
|
||||||
=item B<--bibtex>
|
=item B<--bibtex>
|
||||||
|
|
||||||
Print the BibTeX entry for GNU B<parallel> and disable citation
|
Print the BibTeX entry for GNU B<parallel> and silence citation
|
||||||
notice.
|
notice.
|
||||||
|
|
||||||
|
If it is impossible for you to run B<--bibtex> you can use
|
||||||
|
B<--will-cite>.
|
||||||
|
|
||||||
|
If you use B<--will-cite> in scripts to be run by others you are
|
||||||
|
making it harder for others to see the citation notice. The
|
||||||
|
development of GNU B<parallel> is indirectly financed through
|
||||||
|
citations, so if users do not know they should cite then that makes it
|
||||||
|
harder to finance development. However, if you pay 10000 EUR, you
|
||||||
|
should feel free to use B<--will-cite>.
|
||||||
|
|
||||||
|
|
||||||
=item B<--block> I<size>
|
=item B<--block> I<size>
|
||||||
|
|
||||||
|
@ -691,42 +701,80 @@ Print a summary of the options to GNU B<parallel> and exit.
|
||||||
|
|
||||||
=item B<--halt> I<val>
|
=item B<--halt> I<val>
|
||||||
|
|
||||||
How should GNU B<parallel> terminate?
|
When should GNU B<parallel> terminate? In some situations it makes no
|
||||||
|
sense to run all jobs. GNU B<parallel> should simply give up as soon
|
||||||
|
as a condition is met.
|
||||||
|
|
||||||
|
I<val> defaults to B<never>, which runs all jobs no matter what.
|
||||||
|
|
||||||
|
I<val> can also take on the form of I<when>,I<why>.
|
||||||
|
|
||||||
|
I<when> can be 'now' which means kill all running jobs and halt
|
||||||
|
immediately, or it can be 'soon' which means wait for all running jobs
|
||||||
|
to complete, but start no new jobs.
|
||||||
|
|
||||||
|
I<why> can be 'fail=X', 'fail=Y%', 'success=X', or 'success=Y%' where
|
||||||
|
X is the number of jobs that has to fail or succeed before halting,
|
||||||
|
and Y is the percentage of jobs that has to fail or succeed before
|
||||||
|
halting.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
=over 23
|
||||||
|
|
||||||
|
=item Z<> --halt now,fail=1
|
||||||
|
|
||||||
|
exit when the first job fails. Kill running jobs.
|
||||||
|
|
||||||
|
=item Z<> --halt soon,fail=3
|
||||||
|
|
||||||
|
exit when 3 jobs fail, but wait for running jobs to complete.
|
||||||
|
|
||||||
|
=item Z<> --halt soon,fail=3%
|
||||||
|
|
||||||
|
exit when 3% of the jobs have failed, but wait for running jobs to complete.
|
||||||
|
|
||||||
|
=item Z<> --halt now,success=1
|
||||||
|
|
||||||
|
exit when a job succeeds. Kill running jobs.
|
||||||
|
|
||||||
|
=item Z<> --halt soon,success=3
|
||||||
|
|
||||||
|
exit when 3 jobs succeeds, but wait for running jobs to complete.
|
||||||
|
|
||||||
|
=item Z<> --halt now,success=3%
|
||||||
|
|
||||||
|
exit when 3% of the jobs have succeeded. Kill running jobs.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
For backwards compability these also work:
|
||||||
|
|
||||||
=over 7
|
=over 7
|
||||||
|
|
||||||
=item Z<>0
|
=item Z<>0
|
||||||
|
|
||||||
Do not halt if a job fails. Exit status will be the number of jobs
|
never
|
||||||
failed. This is the default.
|
|
||||||
|
|
||||||
=item Z<>1
|
=item Z<>1
|
||||||
|
|
||||||
Do not start new jobs if a job fails, but complete the running jobs
|
soon,fail=1
|
||||||
including cleanup. The exit status will be the exit status from the
|
|
||||||
last failing job.
|
|
||||||
|
|
||||||
=item Z<>2
|
=item Z<>2
|
||||||
|
|
||||||
Kill off all jobs immediately and exit without cleanup. The exit
|
now,fail=1
|
||||||
status will be the exit status from the failing job.
|
|
||||||
|
|
||||||
=item Z<>-1
|
=item Z<>-1
|
||||||
|
|
||||||
Do not start new jobs if a job succeeds, but complete the running jobs
|
soon,success=1
|
||||||
including cleanup. The exit status will be the exit status from the
|
|
||||||
last failing job if any.
|
|
||||||
|
|
||||||
=item Z<>-2
|
=item Z<>-2
|
||||||
|
|
||||||
Kill off all jobs immediately and exit without cleanup. The exit
|
now,success=1
|
||||||
status will be 0.
|
|
||||||
|
|
||||||
=item Z<>1-99%
|
=item Z<>1-99%
|
||||||
|
|
||||||
If I<val>% of the jobs fail and minimum 3: Do not start new jobs, but
|
soon,fail=1-99%
|
||||||
complete the running jobs including cleanup. The exit status will be
|
|
||||||
the exit status from the last failing job.
|
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
@ -3482,21 +3530,25 @@ remote computers:
|
||||||
|
|
||||||
=head1 EXIT STATUS
|
=head1 EXIT STATUS
|
||||||
|
|
||||||
If B<--halt-on-error> 0 or not specified:
|
Exit status depends on B<--halt-on-error> if one of these are used:
|
||||||
|
success=X, success=Y%, fail=Y%.
|
||||||
|
|
||||||
=over 6
|
=over 6
|
||||||
|
|
||||||
=item Z<>0
|
=item Z<>0
|
||||||
|
|
||||||
All jobs ran without error.
|
All jobs ran without error. If success=X is used: X jobs ran without
|
||||||
|
error. If success=Y% is used: Y% of the jobs ran without error.
|
||||||
|
|
||||||
=item Z<>1-253
|
=item Z<>1-100
|
||||||
|
|
||||||
Some of the jobs failed. The exit status gives the number of failed jobs
|
Some of the jobs failed. The exit status gives the number of failed
|
||||||
|
jobs. If Y% is used the exit status is the percentage of jobs that
|
||||||
|
failed.
|
||||||
|
|
||||||
=item Z<>254
|
=item Z<>101
|
||||||
|
|
||||||
More than 253 jobs failed.
|
More than 100 jobs failed.
|
||||||
|
|
||||||
=item Z<>255
|
=item Z<>255
|
||||||
|
|
||||||
|
@ -3504,7 +3556,8 @@ Other error.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
If B<--halt-on-error> 1 or 2: Exit status of the failing job.
|
If fail=1 is used, the exit status will be the exit status of the
|
||||||
|
failing job.
|
||||||
|
|
||||||
|
|
||||||
=head1 DIFFERENCES BETWEEN GNU Parallel AND ALTERNATIVES
|
=head1 DIFFERENCES BETWEEN GNU Parallel AND ALTERNATIVES
|
||||||
|
@ -3533,7 +3586,7 @@ Manipulation of input
|
||||||
M3. Arguments can be put anywhere in the execution line
|
M3. Arguments can be put anywhere in the execution line
|
||||||
M4. Multiple arguments can be put anywhere in the execution line
|
M4. Multiple arguments can be put anywhere in the execution line
|
||||||
M5. Arguments can be replaced with context
|
M5. Arguments can be replaced with context
|
||||||
M6. Input can be treated as complete execution line
|
M6. Input can be treated as the complete command line
|
||||||
|
|
||||||
Outputs
|
Outputs
|
||||||
O1. Grouping output so output from different jobs do not mix
|
O1. Grouping output so output from different jobs do not mix
|
||||||
|
|
|
@ -24,7 +24,7 @@ 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 "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true") | parallel -j10 --halt-on-error 1;
|
||||||
echo $?;
|
echo $?;
|
||||||
|
|
||||||
(echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true";echo "sleep 4; non_exist") | parallel -j10 --halt 1;
|
(echo "sleep 1;true"; echo "sleep 2; non_exist";echo "sleep 3;true";echo "sleep 4; false") | parallel -j10 --halt 1;
|
||||||
echo $?
|
echo $?
|
||||||
|
|
||||||
echo '**'
|
echo '**'
|
||||||
|
@ -56,20 +56,20 @@ echo '### Test --halt -2';
|
||||||
|
|
||||||
echo '**'
|
echo '**'
|
||||||
|
|
||||||
echo '### Test last dying print --halt-on-error 1';
|
echo '### Test first dying print --halt-on-error 1';
|
||||||
(seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt 1 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift';
|
(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 $?
|
echo exit code $?
|
||||||
|
|
||||||
echo '### Test last dying print --halt-on-error 2';
|
echo '### Test last dying print --halt-on-error 2';
|
||||||
(seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt 2 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift';
|
(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 $?
|
echo exit code $?
|
||||||
|
|
||||||
echo '### Test last dying print --halt-on-error -1';
|
echo '### Test last dying print --halt-on-error -1';
|
||||||
(seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt -1 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit not shift';
|
(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 $?
|
echo exit code $?
|
||||||
|
|
||||||
echo '### Test last dying print --halt-on-error -2';
|
echo '### Test last dying print --halt-on-error -2';
|
||||||
(seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt -2 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit not shift';
|
(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 $?
|
echo exit code $?
|
||||||
|
|
||||||
echo '**'
|
echo '**'
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
# /tmp/parallel-local-ssh2 will by default be owned by me and should be writable by *@localhost
|
# /tmp/parallel-local-ssh2 will by default be owned by me and should be writable by *@localhost
|
||||||
chmod 777 "$TMPDIR" 2>/dev/null
|
chmod 777 "$TMPDIR" 2>/dev/null
|
||||||
|
|
||||||
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | stdout parallel -vj5 -k --joblog /tmp/jl-`basename $0` -L1
|
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | stdout parallel -vj5 --retries 3 -k --joblog /tmp/jl-`basename $0` -L1
|
||||||
echo "### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded"
|
echo "### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded"
|
||||||
# Pre-20141106 Would reset the number of jobs run on all sshlogin if --slf changed
|
# Pre-20141106 Would reset the number of jobs run on all sshlogin if --slf changed
|
||||||
# Thus must take at least 25 sec to run
|
# Thus must take at least 25 sec to run
|
||||||
|
|
|
@ -33,6 +33,8 @@ perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' ../../src/
|
||||||
s/... ... .. ..:..:.. \D+ ..../DATE OUTPUT/;
|
s/... ... .. ..:..:.. \D+ ..../DATE OUTPUT/;
|
||||||
# Timestamp from --joblog
|
# Timestamp from --joblog
|
||||||
s/\d{10}.\d{3}\s+..\d+/TIMESTAMP\t9.999/g;
|
s/\d{10}.\d{3}\s+..\d+/TIMESTAMP\t9.999/g;
|
||||||
|
# Version
|
||||||
|
s/201\d{5}/VERSION/g;
|
||||||
# Remote script
|
# Remote script
|
||||||
s/(PARALLEL_PID\D+)\d+/${1}000000/g;
|
s/(PARALLEL_PID\D+)\d+/${1}000000/g;
|
||||||
# /usr/bin/time -f %e
|
# /usr/bin/time -f %e
|
||||||
|
|
|
@ -13,19 +13,19 @@ echo '### Test --halt-on-error 0'; (echo "sleep 1;true"; echo "sleep 2;false";
|
||||||
/bin/bash: non_exist: command not found
|
/bin/bash: non_exist: command not found
|
||||||
echo '**'
|
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;false";echo "sleep 3;true";echo "sleep 4; non_exist") | parallel -j10 --halt 1; 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
|
### Test --halt-on-error 1
|
||||||
1
|
1
|
||||||
127
|
127
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 2;false
|
sleep 2;false
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
parallel: This job failed:
|
|
||||||
sleep 2;false
|
|
||||||
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
|
||||||
/bin/bash: non_exist: command not found
|
/bin/bash: non_exist: command not found
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 4; non_exist
|
sleep 2; non_exist
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 4; false
|
||||||
echo '**'
|
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 $?
|
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 $?
|
||||||
|
@ -61,98 +61,98 @@ parallel: This job succeeded:
|
||||||
sleep 2;true
|
sleep 2;true
|
||||||
echo '**'
|
echo '**'
|
||||||
**
|
**
|
||||||
echo '### Test last dying print --halt-on-error 1'; (seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt 1 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift'; echo exit code $?
|
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 last dying print --halt-on-error 1
|
### Test first dying print --halt-on-error 1
|
||||||
exit code 9
|
exit code 1
|
||||||
0
|
0
|
||||||
1
|
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 1
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 1
|
||||||
parallel: Starting no more jobs. Waiting for 8 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 8 jobs to finish.
|
||||||
2
|
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 2
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 2
|
||||||
parallel: Starting no more jobs. Waiting for 7 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 7 jobs to finish.
|
||||||
3
|
3
|
||||||
|
0
|
||||||
|
1
|
||||||
|
2
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 3
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 3
|
||||||
parallel: Starting no more jobs. Waiting for 6 jobs to finish.
|
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
|
4
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 4
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 4
|
||||||
parallel: Starting no more jobs. Waiting for 5 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 4 jobs to finish.
|
||||||
5
|
5
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 5
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 5
|
||||||
parallel: Starting no more jobs. Waiting for 4 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
6
|
6
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 6
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 6
|
||||||
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
|
||||||
7
|
|
||||||
parallel: This job failed:
|
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 7
|
|
||||||
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
8
|
7
|
||||||
0
|
0
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 8
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 7
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
9
|
8
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 9
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 8
|
||||||
echo '### Test last dying print --halt-on-error 2'; (seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt 2 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift'; echo exit code $?
|
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
|
### Test last dying print --halt-on-error 2
|
||||||
exit code 1
|
exit code 1
|
||||||
0
|
0
|
||||||
1
|
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 1
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 1
|
||||||
echo '### Test last dying print --halt-on-error -1'; (seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt -1 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit not shift'; echo exit code $?
|
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
|
### Test last dying print --halt-on-error -1
|
||||||
exit code 0
|
exit code 0
|
||||||
0
|
0
|
||||||
1
|
|
||||||
parallel: This job succeeded:
|
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
|
||||||
parallel: Starting no more jobs. Waiting for 8 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 8 jobs to finish.
|
||||||
2
|
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 2
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 2
|
||||||
parallel: Starting no more jobs. Waiting for 7 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 7 jobs to finish.
|
||||||
3
|
3
|
||||||
|
0
|
||||||
|
1
|
||||||
|
2
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 3
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 3
|
||||||
parallel: Starting no more jobs. Waiting for 6 jobs to finish.
|
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
|
4
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 4
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 4
|
||||||
parallel: Starting no more jobs. Waiting for 5 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 4 jobs to finish.
|
||||||
5
|
5
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 5
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 5
|
||||||
parallel: Starting no more jobs. Waiting for 4 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
6
|
6
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 6
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 6
|
||||||
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
|
||||||
7
|
|
||||||
parallel: This job succeeded:
|
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 7
|
|
||||||
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
8
|
7
|
||||||
0
|
0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 8
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 7
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
9
|
8
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 9
|
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 8
|
||||||
echo '### Test last dying print --halt-on-error -2'; (seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt -2 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit not shift'; echo exit code $?
|
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
|
### Test last dying print --halt-on-error -2
|
||||||
exit code 0
|
exit code 0
|
||||||
0
|
0
|
||||||
1
|
|
||||||
parallel: This job succeeded:
|
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 '**'
|
||||||
|
@ -161,45 +161,9 @@ testhalt() { echo '### testhalt --halt '$1; (yes 0 | head -n 10; seq 10) | s
|
||||||
### testhalt --halt now,fail=0
|
### testhalt --halt now,fail=0
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
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
|
0
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
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
|
0
|
||||||
### testhalt --halt now,fail=1
|
### testhalt --halt now,fail=1
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
|
@ -232,7 +196,7 @@ parallel: This job failed:
|
||||||
sleep 1.5; exit 5
|
sleep 1.5; exit 5
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.8; exit 6
|
sleep 1.8; exit 6
|
||||||
6
|
30
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
|
@ -241,7 +205,11 @@ parallel: This job failed:
|
||||||
sleep 0.9; exit 3
|
sleep 0.9; exit 3
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.2; exit 4
|
sleep 1.2; exit 4
|
||||||
4
|
parallel: This job failed:
|
||||||
|
sleep 1.5; exit 5
|
||||||
|
parallel: This job failed:
|
||||||
|
sleep 1.8; exit 6
|
||||||
|
30
|
||||||
### testhalt --halt now,fail=70%
|
### testhalt --halt now,fail=70%
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
|
@ -263,7 +231,7 @@ parallel: This job failed:
|
||||||
sleep 2.7; exit 9
|
sleep 2.7; exit 9
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 3; exit 10
|
sleep 3; exit 10
|
||||||
0
|
50
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
|
@ -278,49 +246,37 @@ parallel: This job failed:
|
||||||
sleep 1.8; exit 6
|
sleep 1.8; exit 6
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 2.1; exit 7
|
sleep 2.1; exit 7
|
||||||
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
|
||||||
|
50
|
||||||
### testhalt --halt soon,fail=0
|
### testhalt --halt soon,fail=0
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.6; exit 2
|
sleep 0.6; exit 2
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.9; exit 3
|
sleep 0.9; exit 3
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.2; exit 4
|
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
|
0
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.6; exit 2
|
sleep 0.6; exit 2
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.9; exit 3
|
sleep 0.9; exit 3
|
||||||
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.2; exit 4
|
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
|
0
|
||||||
### testhalt --halt soon,fail=1
|
### testhalt --halt soon,fail=1
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
|
@ -334,7 +290,7 @@ sleep 0.9; exit 3
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.2; exit 4
|
sleep 1.2; exit 4
|
||||||
4
|
1
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
|
@ -346,7 +302,7 @@ sleep 0.9; exit 3
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.2; exit 4
|
sleep 1.2; exit 4
|
||||||
4
|
1
|
||||||
### testhalt --halt soon,fail=2
|
### testhalt --halt soon,fail=2
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
|
@ -361,7 +317,7 @@ sleep 1.2; exit 4
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.5; exit 5
|
sleep 1.5; exit 5
|
||||||
5
|
2
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
|
@ -375,7 +331,7 @@ sleep 1.2; exit 4
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.5; exit 5
|
sleep 1.5; exit 5
|
||||||
5
|
2
|
||||||
### testhalt --halt soon,fail=30%
|
### testhalt --halt soon,fail=30%
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
|
@ -398,7 +354,7 @@ sleep 2.4; exit 8
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 2.7; exit 9
|
sleep 2.7; exit 9
|
||||||
9
|
30
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
|
@ -407,16 +363,20 @@ parallel: This job failed:
|
||||||
sleep 0.9; exit 3
|
sleep 0.9; exit 3
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.2; exit 4
|
sleep 1.2; exit 4
|
||||||
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.5; exit 5
|
sleep 1.5; exit 5
|
||||||
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 1.8; exit 6
|
sleep 1.8; exit 6
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 2.1; exit 7
|
sleep 2.1; exit 7
|
||||||
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
|
||||||
|
30
|
||||||
### testhalt --halt soon,fail=70%
|
### testhalt --halt soon,fail=70%
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
|
@ -438,7 +398,7 @@ parallel: This job failed:
|
||||||
sleep 2.7; exit 9
|
sleep 2.7; exit 9
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 3; exit 10
|
sleep 3; exit 10
|
||||||
0
|
50
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 0.3; exit 1
|
sleep 0.3; exit 1
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
|
@ -453,59 +413,20 @@ parallel: This job failed:
|
||||||
sleep 1.8; exit 6
|
sleep 1.8; exit 6
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 2.1; exit 7
|
sleep 2.1; exit 7
|
||||||
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 2.4; exit 8
|
sleep 2.4; exit 8
|
||||||
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 2.7; exit 9
|
sleep 2.7; exit 9
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
sleep 3; exit 10
|
sleep 3; exit 10
|
||||||
10
|
50
|
||||||
### testhalt --halt now,success=0
|
### testhalt --halt now,success=0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
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
|
0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
0
|
||||||
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
|
### testhalt --halt now,success=1
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
|
@ -533,6 +454,10 @@ parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
0
|
0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
|
@ -542,6 +467,10 @@ parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
|
parallel: This job succeeded:
|
||||||
|
sleep 0; exit 0
|
||||||
0
|
0
|
||||||
### testhalt --halt now,success=70%
|
### testhalt --halt now,success=70%
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
|
@ -552,7 +481,19 @@ parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
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
|
||||||
|
50
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
|
@ -573,50 +514,24 @@ parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
7
|
50
|
||||||
### testhalt --halt soon,success=0
|
### testhalt --halt soon,success=0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
|
parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
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:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
0
|
0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
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
|
|
||||||
7
|
|
||||||
### testhalt --halt soon,success=1
|
### testhalt --halt soon,success=1
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
|
@ -664,6 +579,10 @@ parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
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: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
|
@ -682,6 +601,10 @@ parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
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: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||||
0
|
0
|
||||||
### testhalt --halt now,success=70%
|
### testhalt --halt now,success=70%
|
||||||
|
@ -693,7 +616,19 @@ parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
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
|
||||||
|
50
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
|
@ -714,7 +649,7 @@ parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
parallel: This job succeeded:
|
parallel: This job succeeded:
|
||||||
sleep 0; exit 0
|
sleep 0; exit 0
|
||||||
7
|
50
|
||||||
echo '**'
|
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
|
||||||
|
|
|
@ -495,19 +495,13 @@ echo 1; exit 1
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
3
|
3
|
||||||
4
|
|
||||||
5
|
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
echo 1; exit 1
|
echo 1; exit 1
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
echo 2; exit 2
|
echo 2; exit 2
|
||||||
parallel: This job failed:
|
|
||||||
echo 3; exit 3
|
|
||||||
parallel: This job failed:
|
|
||||||
echo 4; exit 4
|
|
||||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||||
parallel: This job failed:
|
parallel: This job failed:
|
||||||
echo 5; exit 5
|
echo 3; exit 3
|
||||||
parallel -k --retries 3 'echo tried {} >>/tmp/runs; echo completed {}; exit {}' ::: 1 2 0
|
parallel -k --retries 3 'echo tried {} >>/tmp/runs; echo completed {}; exit {}' ::: 1 2 0
|
||||||
cat /tmp/runs
|
cat /tmp/runs
|
||||||
completed 1
|
completed 1
|
||||||
|
@ -939,7 +933,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 20150502
|
GNU parallel VERSION
|
||||||
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>
|
||||||
|
@ -950,9 +944,9 @@ 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 VERSION && echo Your version is at least VERSION.
|
||||||
20150502
|
VERSION
|
||||||
Your version is at least 20130722.
|
Your version is at least VERSION.
|
||||||
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.
|
||||||
When using programs that use GNU Parallel to process data for publication
|
When using programs that use GNU Parallel to process data for publication
|
||||||
|
|
Loading…
Reference in a new issue