parallel: Work around for "tcgetattr: Invalid argument" in old OpenSSHs.

This commit is contained in:
Ole Tange 2013-05-22 00:29:41 +02:00
parent e5853b7fbb
commit e377032c5d
19 changed files with 418 additions and 406 deletions

12
README
View file

@ -40,9 +40,9 @@ document.
Full installation of GNU Parallel is as simple as:
wget http://ftpmirror.gnu.org/parallel/parallel-20130514.tar.bz2
bzip2 -dc parallel-20130514.tar.bz2 | tar xvf -
cd parallel-20130514
wget http://ftpmirror.gnu.org/parallel/parallel-20130522.tar.bz2
bzip2 -dc parallel-20130522.tar.bz2 | tar xvf -
cd parallel-20130522
./configure && make && make install
@ -51,9 +51,9 @@ Full installation of GNU Parallel is as simple as:
If you are not root you can add ~/bin to your path and install in
~/bin and ~/share:
wget http://ftpmirror.gnu.org/parallel/parallel-20130514.tar.bz2
bzip2 -dc parallel-20130514.tar.bz2 | tar xvf -
cd parallel-20130514
wget http://ftpmirror.gnu.org/parallel/parallel-20130522.tar.bz2
bzip2 -dc parallel-20130522.tar.bz2 | tar xvf -
cd parallel-20130522
./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for parallel 20130514.
# Generated by GNU Autoconf 2.68 for parallel 20130522.
#
# Report bugs to <bug-parallel@gnu.org>.
#
@ -559,8 +559,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20130514'
PACKAGE_STRING='parallel 20130514'
PACKAGE_VERSION='20130522'
PACKAGE_STRING='parallel 20130522'
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL=''
@ -1176,7 +1176,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures parallel 20130514 to adapt to many kinds of systems.
\`configure' configures parallel 20130522 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1242,7 +1242,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20130514:";;
short | recursive ) echo "Configuration of parallel 20130522:";;
esac
cat <<\_ACEOF
@ -1309,7 +1309,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
parallel configure 20130514
parallel configure 20130522
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@ -1326,7 +1326,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20130514, which was
It was created by parallel $as_me 20130522, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@ -2141,7 +2141,7 @@ fi
# Define the identity of the package.
PACKAGE='parallel'
VERSION='20130514'
VERSION='20130522'
cat >>confdefs.h <<_ACEOF
@ -2704,7 +2704,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by parallel $as_me 20130514, which was
This file was extended by parallel $as_me 20130522, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -2766,7 +2766,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
parallel config.status 20130514
parallel config.status 20130522
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel], [20130514], [bug-parallel@gnu.org])
AC_INIT([parallel], [20130522], [bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([

View file

@ -202,6 +202,9 @@ New in this release:
* Jobs are now distributed round robin when having mulitiple
--sshlogin instead of filling up one --sshlogin at a time.
* niceload: darwin version of --io --mem --swap. Thanks to Anders F
Björklund.
* Bug fixes and man page updates.

View file

@ -24,7 +24,7 @@
use strict;
use Getopt::Long;
$Global::progname="niceload";
$Global::version = 20130514;
$Global::version = 20130522;
Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage();
if($opt::version) {

View file

@ -52,7 +52,7 @@ under the limits. The default is B<--soft>.
=item B<-I> I<iolimit>
Limit for I/O. The amount of disk I/O will be computed as a value 0 -
10, where 0 is no I/O and 10 is at least one disk is 100% satuated.
10, where 0 is no I/O and 10 is at least one disk is 100% saturated.
B<--io> will set both B<--start-io> and B<run-io>.

View file

@ -66,7 +66,7 @@ under the limits. The default is @strong{--soft}.
@anchor{@strong{-I} @emph{iolimit}}
Limit for I/O. The amount of disk I/O will be computed as a value 0 -
10, where 0 is no I/O and 10 is at least one disk is 100% satuated.
10, where 0 is no I/O and 10 is at least one disk is 100% saturated.
@strong{--io} will set both @strong{--start-io} and @strong{run-io}.

View file

@ -454,11 +454,6 @@ sub write_record_to_pipe {
}
$job->write($header_ref);
$job->write($record_ref);
if($opt::ctrlc) {
# Print a CTRL-D to mark EOF
my $ctrld = sprintf("%c",4);
$job->write(\$ctrld);
}
my $fh = $job->stdin();
close $fh;
exit(0);
@ -553,6 +548,7 @@ sub options_hash {
"basefile|bf=s" => \@opt::basefile,
"B=s" => \$opt::retired,
"ctrlc|ctrl-c" => \$opt::ctrlc,
"noctrlc|no-ctrlc|no-ctrl-c" => \$opt::noctrlc,
"workdir|wd=s" => \$opt::workdir,
"W=s" => \$opt::retired,
"tmpdir=s" => \$opt::tmpdir,
@ -645,7 +641,7 @@ sub get_options_from_array {
sub parse_options {
# Returns: N/A
# Defaults:
$Global::version = 20130514;
$Global::version = 20130522;
$Global::progname = 'parallel';
$Global::infinity = 2**31;
$Global::debug = 0;
@ -760,7 +756,7 @@ sub parse_options {
}
if($opt::tollef and not $opt::gnu and not $opt::plain) {
# Behave like tollef parallel (from moreutils)
if($Global::version > 20130514) {
if($Global::version > 20130522) {
::error("--tollef has been retired. See http://lists.gnu.org/archive/html/parallel/2013-02/msg00018.html\n");
::wait_and_exit(255);
}
@ -919,11 +915,11 @@ sub parse_env_var {
my @qbash = map { my $a=$_; "export $a=" . env_quote($ENV{$a}) } @vars;
# Create lines like:
# echo $SHELL | grep -E "/t?csh" >/dev/null && setenv V1 val1 && setenv V2 val2 || export V1=val1 && export V2=val2 ; echo "$V1$V2"
# echo $SHELL | grep "/t\\{0,1\\}csh" >/dev/null && setenv V1 val1 && setenv V2 val2 || export V1=val1 && export V2=val2 ; echo "$V1$V2"
if(@vars) {
$Global::envvar =
join"",
(q{echo $SHELL | grep -E "/t?csh" > /dev/null && }
(q{echo $SHELL | grep "/t\\{0,1\\}csh" > /dev/null && }
. join(" && ", @qcsh)
. q{ || }
. join(" && ", @qbash)
@ -3343,7 +3339,9 @@ sub sshcommand_of_sshlogin {
my $control_path = $self->control_path_dir()."/ssh-%r@%h:%p";
$sshcmd = "ssh -S ".$control_path;
$serverlogin = $self->{'string'};
my $master = "ssh -MTS $control_path $serverlogin sleep 1";
# OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt
# 2>/dev/null to ignore "process_mux_new_session: tcgetattr: Invalid argument"
my $master = "ssh -MTS $control_path $serverlogin sleep 1 2>/dev/null";
if(not $self->{'control_path'}{$control_path}++) {
# Master is not running for this control_path
# Start it
@ -3785,14 +3783,16 @@ sub sshlogin_wrap {
# We cannot use parse_env_var(), as PARALLEL_SEQ changes
# for each command
my $parallel_env =
(q{ 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null }
(q{ 'eval `echo $SHELL | grep "/t\\{0,1\\}csh" > /dev/null }
. q{ && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; }
. q{ setenv PARALLEL_PID '$PARALLEL_PID' }
. q{ || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; }
. q{ PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' });
my $remote_pre = "";
my $ssh_options = "";
if(not $opt::pipe or $opt::ctrlc) {
if($opt::pipe and $opt::ctrlc
or
not $opt::pipe and not $opt::noctrlc) {
# Propagating CTRL-C to kill remote jobs requires
# remote jobs to be run with a terminal.
$ssh_options = "-tt -oLogLevel=quiet";
@ -4283,12 +4283,25 @@ sub print {
}
if($opt::tag or defined $opt::tagstring) {
my $tag = $self->tag();
# OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt
# This is a crappy way of ignoring it.
while(<$err>) {
if($_ ne "tcgetattr: Invalid argument\n") {
print STDERR $tag,$_;
}
# At most run the loop once
last;
}
while(<$err>) {
print STDERR $tag,$_;
}
} else {
my $buf;
while(sysread($err,$buf,1000_000)) {
sysread($err,$buf,1_000_000);
# OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt
$buf =~ s/^tcgetattr: Invalid argument\n//;
print STDERR $buf;
while(sysread($err,$buf,1_000_000)) {
print STDERR $buf;
}
}
@ -4309,7 +4322,7 @@ sub print {
}
} else {
my $buf;
while(sysread($out,$buf,1000_000)) {
while(sysread($out,$buf,1_000_000)) {
print STDOUT $buf;
}
}

View file

@ -147,7 +147,7 @@ The replacement string B<{#}> can be changed with B<--seqreplace>.
To understand replacement strings see B<{}>.
=item B<{>I<n>B<}> (alpha testing)
=item B<{>I<n>B<}> (beta testing)
Argument from input source I<n> or the I<n>'th argument. This
positional replacement string will be replaced by the input from input
@ -158,7 +158,7 @@ I<n>'th last argument.
To understand replacement strings see B<{}>.
=item B<{>I<n>.B<}> (alpha testing)
=item B<{>I<n>.B<}> (beta testing)
Argument from input source I<n> or the I<n>'th argument without
extension. It is a combination of B<{>I<n>B<}> and B<{.}>.
@ -171,7 +171,7 @@ extension removed.
To understand positional replacement strings see B<{>I<n>B<}>.
=item B<{>I<n>/B<}> (alpha testing)
=item B<{>I<n>/B<}> (beta testing)
Basename of argument from input source I<n> or the I<n>'th argument.
It is a combination of B<{>I<n>B<}> and B<{/}>.
@ -184,7 +184,7 @@ directory (if any) removed.
To understand positional replacement strings see B<{>I<n>B<}>.
=item B<{>I<n>//B<}> (alpha testing)
=item B<{>I<n>//B<}> (beta testing)
Dirname of argument from input source I<n> or the I<n>'th argument.
It is a combination of B<{>I<n>B<}> and B<{//}>.
@ -196,7 +196,7 @@ the I<n>'th argument (when used with B<-N>). See B<dirname>(1).
To understand positional replacement strings see B<{>I<n>B<}>.
=item B<{>I<n>/.B<}> (alpha testing)
=item B<{>I<n>/.B<}> (beta testing)
Basename of argument from input source I<n> or the I<n>'th argument
without extension. It is a combination of B<{>I<n>B<}>, B<{/}>, and
@ -345,9 +345,9 @@ Implies B<--semaphore>.
Print the BibTeX entry for GNU B<parallel>.
=item B<--block> I<size> (beta testing)
=item B<--block> I<size>
=item B<--block-size> I<size> (beta testing)
=item B<--block-size> I<size>
Size of block in bytes. The size can be postfixed with K, M, G, T, P,
k, m, g, t, or p which would multiply the size with 1024, 1048576,
@ -363,7 +363,7 @@ I<size> defaults to 1M.
See B<--pipe> for use of this.
=item B<--cleanup> (alpha testing)
=item B<--cleanup> (beta testing)
Remove transferred files. B<--cleanup> will remove the transferred files
on the remote computer after processing is done.
@ -432,7 +432,7 @@ occurs as a line of input, the rest of the input is ignored. If
neither B<-E> nor B<-e> is used, no end of file string is used.
=item B<--delay> I<secs> (beta testing)
=item B<--delay> I<secs>
Delay starting next job I<secs> seconds. GNU B<parallel> will pause
I<secs> seconds after starting each job. I<secs> can be less than 1
@ -572,7 +572,7 @@ specified, and for B<-I>{} otherwise. This option is deprecated;
use B<-I> instead.
=item B<--joblog> I<logfile> (beta testing)
=item B<--joblog> I<logfile>
Logfile for executed jobs. Save a list of the executed jobs to
I<logfile> in the following TAB separated format: sequence number,
@ -670,7 +670,7 @@ to see the difference:
=item B<-L> I<max-lines>
When used with B<--pipe>: Read records of I<max-lines> (beta testing).
When used with B<--pipe>: Read records of I<max-lines>.
When used otherwise: Use at most I<max-lines> nonblank input lines per
command line. Trailing blanks cause an input line to be logically
@ -686,7 +686,7 @@ Implies B<-X> unless B<-m>, B<--xargs>, or B<--pipe> is set.
=item B<-l>[I<max-lines>]
When used with B<--pipe>: Read records of I<max-lines> (beta testing).
When used with B<--pipe>: Read records of I<max-lines>.
When used otherwise: Synonym for the B<-L> option. Unlike B<-L>, the
I<max-lines> argument is optional. If I<max-lines> is not specified,
@ -698,7 +698,7 @@ B<-l 0> is an alias for B<-l 1>.
Implies B<-X> unless B<-m>, B<--xargs>, or B<--pipe> is set.
=item B<--load> I<max-load> (alpha testing)
=item B<--load> I<max-load> (beta testing)
Do not start new jobs on a given computer unless the number of running
processes on the computer is less than I<max-load>. I<max-load> uses
@ -789,9 +789,9 @@ Instead of printing the output to stdout (standard output) the output
of each job is saved in a file and the filename is then printed.
=item B<--pipe> (alpha testing)
=item B<--pipe> (beta testing)
=item B<--spreadstdin> (alpha testing)
=item B<--spreadstdin> (beta testing)
Spread input to jobs on stdin (standard input). Read a block of data
from stdin (standard input) and give one block of data as input to one
@ -840,9 +840,9 @@ B<--progress> on a running GNU B<parallel> process.
See also: B<--eta>
=item B<--max-args>=I<max-args> (alpha testing)
=item B<--max-args>=I<max-args> (beta testing)
=item B<-n> I<max-args> (alpha testing)
=item B<-n> I<max-args> (beta testing)
Use at most I<max-args> arguments per command line. Fewer than
I<max-args> arguments will be used if the size (see the B<-s> option)
@ -855,9 +855,9 @@ line.
Implies B<-X> unless B<-m> is set.
=item B<--max-replace-args>=I<max-args> (alpha testing)
=item B<--max-replace-args>=I<max-args> (beta testing)
=item B<-N> I<max-args> (alpha testing)
=item B<-N> I<max-args> (beta testing)
Use at most I<max-args> arguments per command line. Like B<-n> but
also makes replacement strings B<{1}> .. B<{>I<max-args>B<}> that
@ -989,9 +989,9 @@ it to the command.
Only used with B<--pipe>.
=item B<--results> I<prefix> (beta testing)
=item B<--results> I<prefix>
=item B<--res> I<prefix> (beta testing)
=item B<--res> I<prefix>
Save the output into files. The files will be stored in a directory tree
rooted at I<prefix>. Within this directory tree, each command will result
@ -1033,7 +1033,7 @@ will generate the files:
See also B<--files>, B<--header>, B<--joblog>.
=item B<--resume> (beta testing)
=item B<--resume>
Resumes from the last unfinished job. By reading B<--joblog> GNU
B<parallel> will figure out the last unfinished job and continue from
@ -1044,7 +1044,7 @@ remain unchanged; otherwise GNU B<parallel> may run wrong commands.
See also: B<--joblog>, B<--resume-failed>.
=item B<--resume-failed> (beta testing)
=item B<--resume-failed>
Retry all failed and resume from the last unfinished job. By reading
B<--joblog> GNU B<parallel> will figure out the failed jobs and run
@ -1065,7 +1065,7 @@ re-use the computers. This is useful if some jobs fail for no apparent
reason (such as network failure).
=item B<--return> I<filename> (alpha testing)
=item B<--return> I<filename> (beta testing)
Transfer files from remote computers. B<--return> is used with
B<--sshlogin> when the arguments are files on the remote computers. When
@ -1234,7 +1234,7 @@ Do not use the first line of input (used by GNU B<parallel> itself
when called with B<--shebang>).
=item B<--sshdelay> I<secs> (alpha testing)
=item B<--sshdelay> I<secs> (beta testing)
Delay starting next ssh by I<secs> seconds. GNU B<parallel> will pause
I<secs> seconds after starting each ssh. I<secs> can be less than 1
@ -1370,7 +1370,7 @@ different dir for the files. Setting B<--tmpdir> is equivalent to
setting $TMPDIR.
=item B<--timeout> I<val> (new alpha testing)
=item B<--timeout> I<val> (alpha testing)
Time out for command. If the command runs for longer than I<val>
seconds it will get killed with SIGTERM, followed by SIGTERM 200 ms
@ -1403,7 +1403,7 @@ Print the job to be run on stderr (standard error).
See also B<-v> and B<-p>.
=item B<--transfer> (alpha testing)
=item B<--transfer> (beta testing)
Transfer files to remote computers. B<--transfer> is used with
B<--sshlogin> when the arguments are files and should be transferred to
@ -1515,9 +1515,9 @@ Use B<-v> B<-v> to print the wrapping ssh command when running remotely.
Print the version GNU B<parallel> and exit.
=item B<--workdir> I<mydir> (alpha testing)
=item B<--workdir> I<mydir> (beta testing)
=item B<--wd> I<mydir> (alpha testing)
=item B<--wd> I<mydir> (beta testing)
Files transferred using B<--transfer> and B<--return> will be relative
to I<mydir> on remote computers, and the command will be executed in

View file

@ -157,8 +157,8 @@ The replacement string @strong{@{#@}} can be changed with @strong{--seqreplace}.
To understand replacement strings see @strong{@{@}}.
@item @strong{@{}@emph{n}@strong{@}} (alpha testing)
@anchor{@strong{@{}@emph{n}@strong{@}} (alpha testing)}
@item @strong{@{}@emph{n}@strong{@}} (beta testing)
@anchor{@strong{@{}@emph{n}@strong{@}} (beta testing)}
Argument from input source @emph{n} or the @emph{n}'th argument. This
positional replacement string will be replaced by the input from input
@ -168,8 +168,8 @@ argument (when used with @strong{-N}). If @emph{n} is negative it refers to the
To understand replacement strings see @strong{@{@}}.
@item @strong{@{}@emph{n}.@strong{@}} (alpha testing)
@anchor{@strong{@{}@emph{n}.@strong{@}} (alpha testing)}
@item @strong{@{}@emph{n}.@strong{@}} (beta testing)
@anchor{@strong{@{}@emph{n}.@strong{@}} (beta testing)}
Argument from input source @emph{n} or the @emph{n}'th argument without
extension. It is a combination of @strong{@{}@emph{n}@strong{@}} and @strong{@{.@}}.
@ -181,8 +181,8 @@ extension removed.
To understand positional replacement strings see @strong{@{}@emph{n}@strong{@}}.
@item @strong{@{}@emph{n}/@strong{@}} (alpha testing)
@anchor{@strong{@{}@emph{n}/@strong{@}} (alpha testing)}
@item @strong{@{}@emph{n}/@strong{@}} (beta testing)
@anchor{@strong{@{}@emph{n}/@strong{@}} (beta testing)}
Basename of argument from input source @emph{n} or the @emph{n}'th argument.
It is a combination of @strong{@{}@emph{n}@strong{@}} and @strong{@{/@}}.
@ -194,8 +194,8 @@ directory (if any) removed.
To understand positional replacement strings see @strong{@{}@emph{n}@strong{@}}.
@item @strong{@{}@emph{n}//@strong{@}} (alpha testing)
@anchor{@strong{@{}@emph{n}//@strong{@}} (alpha testing)}
@item @strong{@{}@emph{n}//@strong{@}} (beta testing)
@anchor{@strong{@{}@emph{n}//@strong{@}} (beta testing)}
Dirname of argument from input source @emph{n} or the @emph{n}'th argument.
It is a combination of @strong{@{}@emph{n}@strong{@}} and @strong{@{//@}}.
@ -206,8 +206,8 @@ the @emph{n}'th argument (when used with @strong{-N}). See @strong{dirname}(1).
To understand positional replacement strings see @strong{@{}@emph{n}@strong{@}}.
@item @strong{@{}@emph{n}/.@strong{@}} (alpha testing)
@anchor{@strong{@{}@emph{n}/.@strong{@}} (alpha testing)}
@item @strong{@{}@emph{n}/.@strong{@}} (beta testing)
@anchor{@strong{@{}@emph{n}/.@strong{@}} (beta testing)}
Basename of argument from input source @emph{n} or the @emph{n}'th argument
without extension. It is a combination of @strong{@{}@emph{n}@strong{@}}, @strong{@{/@}}, and
@ -364,11 +364,11 @@ Implies @strong{--semaphore}.
Print the BibTeX entry for GNU @strong{parallel}.
@item @strong{--block} @emph{size} (beta testing)
@anchor{@strong{--block} @emph{size} (beta testing)}
@item @strong{--block} @emph{size}
@anchor{@strong{--block} @emph{size}}
@item @strong{--block-size} @emph{size} (beta testing)
@anchor{@strong{--block-size} @emph{size} (beta testing)}
@item @strong{--block-size} @emph{size}
@anchor{@strong{--block-size} @emph{size}}
Size of block in bytes. The size can be postfixed with K, M, G, T, P,
k, m, g, t, or p which would multiply the size with 1024, 1048576,
@ -383,8 +383,8 @@ than a single record.
See @strong{--pipe} for use of this.
@item @strong{--cleanup} (alpha testing)
@anchor{@strong{--cleanup} (alpha testing)}
@item @strong{--cleanup} (beta testing)
@anchor{@strong{--cleanup} (beta testing)}
Remove transferred files. @strong{--cleanup} will remove the transferred files
on the remote computer after processing is done.
@ -458,8 +458,8 @@ Set the end of file string to eof-str. If the end of file string
occurs as a line of input, the rest of the input is ignored. If
neither @strong{-E} nor @strong{-e} is used, no end of file string is used.
@item @strong{--delay} @emph{secs} (beta testing)
@anchor{@strong{--delay} @emph{secs} (beta testing)}
@item @strong{--delay} @emph{secs}
@anchor{@strong{--delay} @emph{secs}}
Delay starting next job @emph{secs} seconds. GNU @strong{parallel} will pause
@emph{secs} seconds after starting each job. @emph{secs} can be less than 1
@ -604,8 +604,8 @@ This option is a synonym for @strong{-I}@emph{replace-str} if @emph{replace-str}
specified, and for @strong{-I}@{@} otherwise. This option is deprecated;
use @strong{-I} instead.
@item @strong{--joblog} @emph{logfile} (beta testing)
@anchor{@strong{--joblog} @emph{logfile} (beta testing)}
@item @strong{--joblog} @emph{logfile}
@anchor{@strong{--joblog} @emph{logfile}}
Logfile for executed jobs. Save a list of the executed jobs to
@emph{logfile} in the following TAB separated format: sequence number,
@ -722,7 +722,7 @@ to see the difference:
@item @strong{-L} @emph{max-lines}
@anchor{@strong{-L} @emph{max-lines}}
When used with @strong{--pipe}: Read records of @emph{max-lines} (beta testing).
When used with @strong{--pipe}: Read records of @emph{max-lines}.
When used otherwise: Use at most @emph{max-lines} nonblank input lines per
command line. Trailing blanks cause an input line to be logically
@ -739,7 +739,7 @@ Implies @strong{-X} unless @strong{-m}, @strong{--xargs}, or @strong{--pipe} is
@item @strong{-l}[@emph{max-lines}]
@anchor{@strong{-l}[@emph{max-lines}]}
When used with @strong{--pipe}: Read records of @emph{max-lines} (beta testing).
When used with @strong{--pipe}: Read records of @emph{max-lines}.
When used otherwise: Synonym for the @strong{-L} option. Unlike @strong{-L}, the
@emph{max-lines} argument is optional. If @emph{max-lines} is not specified,
@ -750,8 +750,8 @@ standard specifies @strong{-L} instead.
Implies @strong{-X} unless @strong{-m}, @strong{--xargs}, or @strong{--pipe} is set.
@item @strong{--load} @emph{max-load} (alpha testing)
@anchor{@strong{--load} @emph{max-load} (alpha testing)}
@item @strong{--load} @emph{max-load} (beta testing)
@anchor{@strong{--load} @emph{max-load} (beta testing)}
Do not start new jobs on a given computer unless the number of running
processes on the computer is less than @emph{max-load}. @emph{max-load} uses
@ -844,11 +844,11 @@ all the output from one server will be grouped together.
Instead of printing the output to stdout (standard output) the output
of each job is saved in a file and the filename is then printed.
@item @strong{--pipe} (alpha testing)
@anchor{@strong{--pipe} (alpha testing)}
@item @strong{--pipe} (beta testing)
@anchor{@strong{--pipe} (beta testing)}
@item @strong{--spreadstdin} (alpha testing)
@anchor{@strong{--spreadstdin} (alpha testing)}
@item @strong{--spreadstdin} (beta testing)
@anchor{@strong{--spreadstdin} (beta testing)}
Spread input to jobs on stdin (standard input). Read a block of data
from stdin (standard input) and give one block of data as input to one
@ -896,11 +896,11 @@ By sending GNU @strong{parallel} SIGUSR2 you can toggle turning on/off
See also: @strong{--eta}
@item @strong{--max-args}=@emph{max-args} (alpha testing)
@anchor{@strong{--max-args}=@emph{max-args} (alpha testing)}
@item @strong{--max-args}=@emph{max-args} (beta testing)
@anchor{@strong{--max-args}=@emph{max-args} (beta testing)}
@item @strong{-n} @emph{max-args} (alpha testing)
@anchor{@strong{-n} @emph{max-args} (alpha testing)}
@item @strong{-n} @emph{max-args} (beta testing)
@anchor{@strong{-n} @emph{max-args} (beta testing)}
Use at most @emph{max-args} arguments per command line. Fewer than
@emph{max-args} arguments will be used if the size (see the @strong{-s} option)
@ -912,11 +912,11 @@ line.
Implies @strong{-X} unless @strong{-m} is set.
@item @strong{--max-replace-args}=@emph{max-args} (alpha testing)
@anchor{@strong{--max-replace-args}=@emph{max-args} (alpha testing)}
@item @strong{--max-replace-args}=@emph{max-args} (beta testing)
@anchor{@strong{--max-replace-args}=@emph{max-args} (beta testing)}
@item @strong{-N} @emph{max-args} (alpha testing)
@anchor{@strong{-N} @emph{max-args} (alpha testing)}
@item @strong{-N} @emph{max-args} (beta testing)
@anchor{@strong{-N} @emph{max-args} (beta testing)}
Use at most @emph{max-args} arguments per command line. Like @strong{-n} but
also makes replacement strings @strong{@{1@}} .. @strong{@{}@emph{max-args}@strong{@}} that
@ -1054,11 +1054,11 @@ it to the command.
Only used with @strong{--pipe}.
@item @strong{--results} @emph{prefix} (beta testing)
@anchor{@strong{--results} @emph{prefix} (beta testing)}
@item @strong{--results} @emph{prefix}
@anchor{@strong{--results} @emph{prefix}}
@item @strong{--res} @emph{prefix} (beta testing)
@anchor{@strong{--res} @emph{prefix} (beta testing)}
@item @strong{--res} @emph{prefix}
@anchor{@strong{--res} @emph{prefix}}
Save the output into files. The files will be stored in a directory tree
rooted at @emph{prefix}. Within this directory tree, each command will result
@ -1107,8 +1107,8 @@ will generate the files:
See also @strong{--files}, @strong{--header}, @strong{--joblog}.
@item @strong{--resume} (beta testing)
@anchor{@strong{--resume} (beta testing)}
@item @strong{--resume}
@anchor{@strong{--resume}}
Resumes from the last unfinished job. By reading @strong{--joblog} GNU
@strong{parallel} will figure out the last unfinished job and continue from
@ -1118,8 +1118,8 @@ remain unchanged; otherwise GNU @strong{parallel} may run wrong commands.
See also: @strong{--joblog}, @strong{--resume-failed}.
@item @strong{--resume-failed} (beta testing)
@anchor{@strong{--resume-failed} (beta testing)}
@item @strong{--resume-failed}
@anchor{@strong{--resume-failed}}
Retry all failed and resume from the last unfinished job. By reading
@strong{--joblog} GNU @strong{parallel} will figure out the failed jobs and run
@ -1139,8 +1139,8 @@ there are fewer than @emph{n} computers in @strong{--sshlogin} GNU @strong{paral
re-use the computers. This is useful if some jobs fail for no apparent
reason (such as network failure).
@item @strong{--return} @emph{filename} (alpha testing)
@anchor{@strong{--return} @emph{filename} (alpha testing)}
@item @strong{--return} @emph{filename} (beta testing)
@anchor{@strong{--return} @emph{filename} (beta testing)}
Transfer files from remote computers. @strong{--return} is used with
@strong{--sshlogin} when the arguments are files on the remote computers. When
@ -1331,8 +1331,8 @@ composed commands for GNU @strong{parallel}.
Do not use the first line of input (used by GNU @strong{parallel} itself
when called with @strong{--shebang}).
@item @strong{--sshdelay} @emph{secs} (alpha testing)
@anchor{@strong{--sshdelay} @emph{secs} (alpha testing)}
@item @strong{--sshdelay} @emph{secs} (beta testing)
@anchor{@strong{--sshdelay} @emph{secs} (beta testing)}
Delay starting next ssh by @emph{secs} seconds. GNU @strong{parallel} will pause
@emph{secs} seconds after starting each ssh. @emph{secs} can be less than 1
@ -1473,8 +1473,8 @@ into temporary files in /tmp. By setting @strong{--tmpdir} you can use a
different dir for the files. Setting @strong{--tmpdir} is equivalent to
setting $TMPDIR.
@item @strong{--timeout} @emph{val} (new alpha testing)
@anchor{@strong{--timeout} @emph{val} (new alpha testing)}
@item @strong{--timeout} @emph{val} (alpha testing)
@anchor{@strong{--timeout} @emph{val} (alpha testing)}
Time out for command. If the command runs for longer than @emph{val}
seconds it will get killed with SIGTERM, followed by SIGTERM 200 ms
@ -1507,8 +1507,8 @@ Print the job to be run on stderr (standard error).
See also @strong{-v} and @strong{-p}.
@item @strong{--transfer} (alpha testing)
@anchor{@strong{--transfer} (alpha testing)}
@item @strong{--transfer} (beta testing)
@anchor{@strong{--transfer} (beta testing)}
Transfer files to remote computers. @strong{--transfer} is used with
@strong{--sshlogin} when the arguments are files and should be transferred to
@ -1630,11 +1630,11 @@ Use @strong{-v} @strong{-v} to print the wrapping ssh command when running remot
Print the version GNU @strong{parallel} and exit.
@item @strong{--workdir} @emph{mydir} (alpha testing)
@anchor{@strong{--workdir} @emph{mydir} (alpha testing)}
@item @strong{--workdir} @emph{mydir} (beta testing)
@anchor{@strong{--workdir} @emph{mydir} (beta testing)}
@item @strong{--wd} @emph{mydir} (alpha testing)
@anchor{@strong{--wd} @emph{mydir} (alpha testing)}
@item @strong{--wd} @emph{mydir} (beta testing)
@anchor{@strong{--wd} @emph{mydir} (beta testing)}
Files transferred using @strong{--transfer} and @strong{--return} will be relative
to @emph{mydir} on remote computers, and the command will be executed in

View file

@ -556,7 +556,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err);
sub parse_options {
$Global::version = 20130514;
$Global::version = 20130522;
$Global::progname = 'sql';
# This must be done first as this may exec myself

View file

@ -7,13 +7,13 @@ POLAR=`parallel echo {}.polarhome.com ::: $P`
echo '### Tests on polarhome machines'
echo 'Setup on polarhome machines'
stdout parallel -kj0 ssh {} mkdir -p bin ::: $POLAR >/dev/null &
stdout parallel -kj0 ssh {} mkdir -p bin ::: $POLAR >/dev/null 2>/dev/null &
# scp to each polarhome machine do not work. From redhat it works.
stdout rsync -a `which parallel` redhat.polarhome.com:bin/
stdout ssh redhat.polarhome.com \
chmod 755 bin/parallel\; \
bin/parallel --tag -kj0 -t --delay 0.2 ssh {} rm -f bin/parallel\\\;scp bin/parallel {}:bin/ ::: $POLAR
bin/parallel --tag -kj0 -v --delay 0.2 ssh {} rm -f bin/parallel\\\;scp bin/parallel {}:bin/ ::: $POLAR | sort
# Now test
echo 'Run the test on polarhome machines'
stdout parallel --argsep // -k --tag ssh {} bin/parallel -k echo Works on ::: {} // $POLAR
stdout parallel --argsep // -k --tag ssh {} bin/parallel -k echo Works on ::: {} // $POLAR | sort

View file

@ -8,4 +8,4 @@ echo `whoami`"@freebsd7"
echo "### bug #37589: Red Hat 9 (Shrike) perl v5.8.0 built for i386-linux-thread-multi error"
cp `which parallel` /tmp/parallel
stdout parallel -j10 --argsep == --basefile /tmp/parallel --tag --nonall -S redhat9.tange.dk,centos3.tange.dk,centos5.tange.dk,freebsd7.tange.dk /tmp/parallel echo ::: OK_if_no_perl_warnings | sort
stdout parallel -kj10 --argsep == --basefile /tmp/parallel --tag --nonall -S redhat9.tange.dk,centos3.tange.dk,centos5.tange.dk,freebsd7.tange.dk /tmp/parallel echo ::: OK_if_no_perl_warnings | sort

View file

@ -3,298 +3,294 @@ Setup on polarhome machines
Fedora release 17 (Beefy Miracle)
Welcome to RedHat/Fedora ...member of polarhome.com realm
Fedora release 17 (Beefy Miracle)
Welcome to RedHat/Fedora ...member of polarhome.com realm
ssh scosysv.polarhome.com rm -f bin/parallel;scp bin/parallel scosysv.polarhome.com:bin/
ssh centos.polarhome.com rm -f bin/parallel;scp bin/parallel centos.polarhome.com:bin/
ssh dragonfly.polarhome.com rm -f bin/parallel;scp bin/parallel dragonfly.polarhome.com:bin/
ssh netbsd.polarhome.com rm -f bin/parallel;scp bin/parallel netbsd.polarhome.com:bin/
ssh freebsd.polarhome.com rm -f bin/parallel;scp bin/parallel freebsd.polarhome.com:bin/
ssh solaris.polarhome.com rm -f bin/parallel;scp bin/parallel solaris.polarhome.com:bin/
ssh openbsd.polarhome.com rm -f bin/parallel;scp bin/parallel openbsd.polarhome.com:bin/
ssh debian.polarhome.com rm -f bin/parallel;scp bin/parallel debian.polarhome.com:bin/
aix.polarhome.com
aix.polarhome.com
aix.polarhome.com Welcome to AIX7 ...member of polarhome.com realm
aix.polarhome.com Welcome to AIX7 ...member of polarhome.com realm
centos.polarhome.com
centos.polarhome.com
centos.polarhome.com
centos.polarhome.com
centos.polarhome.com CentOS release 5.6 (Final)
centos.polarhome.com CentOS release 5.6 (Final)
centos.polarhome.com Welcome to CentOS ...member of polarhome.com realm
centos.polarhome.com Welcome to CentOS ...member of polarhome.com realm
debian.polarhome.com
debian.polarhome.com
debian.polarhome.com
debian.polarhome.com
debian.polarhome.com Debian GNU/Linux 6.0.2 (squeeze)
debian.polarhome.com Debian GNU/Linux 6.0.2 (squeeze)
debian.polarhome.com Welcome to debian ...member of polarhome.com realm
debian.polarhome.com Welcome to debian ...member of polarhome.com realm
dragonfly.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com DragonFly v2.10.1.1
dragonfly.polarhome.com DragonFly v2.10.1.1
dragonfly.polarhome.com Welcome to DragonFly ...member of polarhome.com realm
dragonfly.polarhome.com Welcome to DragonFly ...member of polarhome.com realm
freebsd.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com FreeBSD 8.2
freebsd.polarhome.com FreeBSD 8.2
freebsd.polarhome.com Welcome to FreeBSD ...member of polarhome.com realm
freebsd.polarhome.com Welcome to FreeBSD ...member of polarhome.com realm
hpux.polarhome.com
hpux.polarhome.com
hpux.polarhome.com
hpux.polarhome.com
hpux.polarhome.com HP-UX hpux.polarhome.com B.11.11 U 9000/785 (ta)
hpux.polarhome.com HP-UX hpux.polarhome.com B.11.11 U 9000/785 (ta)
hpux.polarhome.com Welcome to HPUX... member of polarhome.com realm
hpux.polarhome.com Welcome to HPUX... member of polarhome.com realm
hurd.polarhome.com
hurd.polarhome.com
hurd.polarhome.com
hurd.polarhome.com
hurd.polarhome.com Debian GNU/Hurd wheezy/sid
hurd.polarhome.com Debian GNU/Hurd wheezy/sid
hurd.polarhome.com Welcome to hurd ...member of polarhome.com realm.
hurd.polarhome.com Welcome to hurd ...member of polarhome.com realm.
irix.polarhome.com
irix.polarhome.com
irix.polarhome.com IRIX64 6.5 07202013 IP35
irix.polarhome.com IRIX64 6.5 07202013 IP35
irix.polarhome.com Welcome to irix ...member of polarhome.com realm
irix.polarhome.com Welcome to irix ...member of polarhome.com realm
mandriva.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com Mandriva Linux release 2010.2 (Official) for x86_64
mandriva.polarhome.com Mandriva Linux release 2010.2 (Official) for x86_64
mandriva.polarhome.com Welcome to Mandrake/Mandriva ...member of polarhome.com realm
mandriva.polarhome.com Welcome to Mandrake/Mandriva ...member of polarhome.com realm
miros.polarhome.com
miros.polarhome.com
miros.polarhome.com
miros.polarhome.com
miros.polarhome.com MirBSD/i386
miros.polarhome.com MirBSD/i386
miros.polarhome.com Welcome to MirOS ...member of polarhome.com realm
miros.polarhome.com Welcome to MirOS ...member of polarhome.com realm
netbsd.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com NetBSD 5.1
netbsd.polarhome.com NetBSD 5.1
netbsd.polarhome.com Welcome to NetBSD ...member of polarhome.com realm
netbsd.polarhome.com Welcome to NetBSD ...member of polarhome.com realm
openbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com OpenBSD 4.9
openbsd.polarhome.com OpenBSD 4.9
openbsd.polarhome.com Welcome to OpenBSD ...member of polarhome.com realm
openbsd.polarhome.com Welcome to OpenBSD ...member of polarhome.com realm
openindiana.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com OpenIndiana SunOS 5.11
openindiana.polarhome.com OpenIndiana SunOS 5.11
openindiana.polarhome.com Welcome to OpenIndiana ...member of polarhome.com realm
openindiana.polarhome.com Welcome to OpenIndiana ...member of polarhome.com realm
qnx.polarhome.com
qnx.polarhome.com
qnx.polarhome.com
qnx.polarhome.com
qnx.polarhome.com QNX 6.5.0
qnx.polarhome.com QNX 6.5.0
qnx.polarhome.com Welcome to QNX ...member of polarhome.com realm
qnx.polarhome.com Welcome to QNX ...member of polarhome.com realm
raspberrypi.polarhome.com
raspberrypi.polarhome.com
raspberrypi.polarhome.com Debian GNU/Linux 6.0
raspberrypi.polarhome.com Debian GNU/Linux 6.0
raspberrypi.polarhome.com RaspberryPi/bcm2708 reference 2.0
raspberrypi.polarhome.com RaspberryPi/bcm2708 reference 2.0
raspberrypi.polarhome.com Welcome to raspberrypi ...member of polarhome.com realm
raspberrypi.polarhome.com Welcome to raspberrypi ...member of polarhome.com realm
scosysv.polarhome.com
scosysv.polarhome.com
scosysv.polarhome.com SCO OpenServer(TM) Release 6
scosysv.polarhome.com SCO OpenServer(TM) Release 6
scosysv.polarhome.com Welcome to scosysv ...member of polarhome.com realm
scosysv.polarhome.com Welcome to scosysv ...member of polarhome.com realm
solaris.polarhome.com
solaris.polarhome.com
solaris.polarhome.com
solaris.polarhome.com
solaris.polarhome.com SUN Ultra-5
solaris.polarhome.com SUN Ultra-5
solaris.polarhome.com SunOS 5.10
solaris.polarhome.com SunOS 5.10
solaris.polarhome.com Welcome to Solaris ...member of polarhome.com realm
solaris.polarhome.com Welcome to Solaris ...member of polarhome.com realm
ssh aix.polarhome.com rm -f bin/parallel;scp bin/parallel aix.polarhome.com:bin/
ssh centos.polarhome.com rm -f bin/parallel;scp bin/parallel centos.polarhome.com:bin/
ssh debian.polarhome.com rm -f bin/parallel;scp bin/parallel debian.polarhome.com:bin/
ssh dragonfly.polarhome.com rm -f bin/parallel;scp bin/parallel dragonfly.polarhome.com:bin/
ssh freebsd.polarhome.com rm -f bin/parallel;scp bin/parallel freebsd.polarhome.com:bin/
ssh hpux.polarhome.com rm -f bin/parallel;scp bin/parallel hpux.polarhome.com:bin/
ssh qnx.polarhome.com rm -f bin/parallel;scp bin/parallel qnx.polarhome.com:bin/
ssh irix.polarhome.com rm -f bin/parallel;scp bin/parallel irix.polarhome.com:bin/
ssh suse.polarhome.com rm -f bin/parallel;scp bin/parallel suse.polarhome.com:bin/
ssh minix.polarhome.com rm -f bin/parallel;scp bin/parallel minix.polarhome.com:bin/
ssh openindiana.polarhome.com rm -f bin/parallel;scp bin/parallel openindiana.polarhome.com:bin/
ssh mandriva.polarhome.com rm -f bin/parallel;scp bin/parallel mandriva.polarhome.com:bin/
ssh unixware.polarhome.com rm -f bin/parallel;scp bin/parallel unixware.polarhome.com:bin/
ssh miros.polarhome.com rm -f bin/parallel;scp bin/parallel miros.polarhome.com:bin/
ssh raspberrypi.polarhome.com rm -f bin/parallel;scp bin/parallel raspberrypi.polarhome.com:bin/
ssh hurd.polarhome.com rm -f bin/parallel;scp bin/parallel hurd.polarhome.com:bin/
ssh ultrix.polarhome.com rm -f bin/parallel;scp bin/parallel ultrix.polarhome.com:bin/
ssh irix.polarhome.com rm -f bin/parallel;scp bin/parallel irix.polarhome.com:bin/
ssh mandriva.polarhome.com rm -f bin/parallel;scp bin/parallel mandriva.polarhome.com:bin/
ssh minix.polarhome.com rm -f bin/parallel;scp bin/parallel minix.polarhome.com:bin/
ssh miros.polarhome.com rm -f bin/parallel;scp bin/parallel miros.polarhome.com:bin/
ssh netbsd.polarhome.com rm -f bin/parallel;scp bin/parallel netbsd.polarhome.com:bin/
ssh openbsd.polarhome.com rm -f bin/parallel;scp bin/parallel openbsd.polarhome.com:bin/
ssh openindiana.polarhome.com rm -f bin/parallel;scp bin/parallel openindiana.polarhome.com:bin/
ssh qnx.polarhome.com rm -f bin/parallel;scp bin/parallel qnx.polarhome.com:bin/
ssh raspberrypi.polarhome.com rm -f bin/parallel;scp bin/parallel raspberrypi.polarhome.com:bin/
ssh scosysv.polarhome.com rm -f bin/parallel;scp bin/parallel scosysv.polarhome.com:bin/
ssh solaris.polarhome.com rm -f bin/parallel;scp bin/parallel solaris.polarhome.com:bin/
ssh suse.polarhome.com rm -f bin/parallel;scp bin/parallel suse.polarhome.com:bin/
ssh ubuntu.polarhome.com rm -f bin/parallel;scp bin/parallel ubuntu.polarhome.com:bin/
scosysv.polarhome.com SCO OpenServer(TM) Release 6
scosysv.polarhome.com Welcome to scosysv ...member of polarhome.com realm
scosysv.polarhome.com
scosysv.polarhome.com SCO OpenServer(TM) Release 6
scosysv.polarhome.com Welcome to scosysv ...member of polarhome.com realm
scosysv.polarhome.com
centos.polarhome.com
centos.polarhome.com CentOS release 5.6 (Final)
centos.polarhome.com Welcome to CentOS ...member of polarhome.com realm
centos.polarhome.com
centos.polarhome.com
centos.polarhome.com CentOS release 5.6 (Final)
centos.polarhome.com Welcome to CentOS ...member of polarhome.com realm
centos.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com DragonFly v2.10.1.1
dragonfly.polarhome.com Welcome to DragonFly ...member of polarhome.com realm
dragonfly.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com DragonFly v2.10.1.1
dragonfly.polarhome.com Welcome to DragonFly ...member of polarhome.com realm
dragonfly.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com NetBSD 5.1
netbsd.polarhome.com Welcome to NetBSD ...member of polarhome.com realm
netbsd.polarhome.com
netbsd.polarhome.com MANPATH: Undefined variable.
netbsd.polarhome.com
netbsd.polarhome.com NetBSD 5.1
netbsd.polarhome.com Welcome to NetBSD ...member of polarhome.com realm
netbsd.polarhome.com
netbsd.polarhome.com MANPATH: Undefined variable.
freebsd.polarhome.com
freebsd.polarhome.com FreeBSD 8.2
freebsd.polarhome.com Welcome to FreeBSD ...member of polarhome.com realm
freebsd.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com FreeBSD 8.2
freebsd.polarhome.com Welcome to FreeBSD ...member of polarhome.com realm
freebsd.polarhome.com
solaris.polarhome.com
solaris.polarhome.com SunOS 5.10
solaris.polarhome.com SUN Ultra-5
solaris.polarhome.com Welcome to Solaris ...member of polarhome.com realm
solaris.polarhome.com
solaris.polarhome.com
solaris.polarhome.com SunOS 5.10
solaris.polarhome.com SUN Ultra-5
solaris.polarhome.com Welcome to Solaris ...member of polarhome.com realm
solaris.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com OpenBSD 4.9
openbsd.polarhome.com Welcome to OpenBSD ...member of polarhome.com realm
openbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com OpenBSD 4.9
openbsd.polarhome.com Welcome to OpenBSD ...member of polarhome.com realm
openbsd.polarhome.com
debian.polarhome.com
debian.polarhome.com Debian GNU/Linux 6.0.2 (squeeze)
debian.polarhome.com Welcome to debian ...member of polarhome.com realm
debian.polarhome.com
debian.polarhome.com
debian.polarhome.com Debian GNU/Linux 6.0.2 (squeeze)
debian.polarhome.com Welcome to debian ...member of polarhome.com realm
debian.polarhome.com
aix.polarhome.com
aix.polarhome.com Welcome to AIX7 ...member of polarhome.com realm
aix.polarhome.com
aix.polarhome.com Welcome to AIX7 ...member of polarhome.com realm
hpux.polarhome.com
hpux.polarhome.com HP-UX hpux.polarhome.com B.11.11 U 9000/785 (ta)
hpux.polarhome.com Welcome to HPUX... member of polarhome.com realm
hpux.polarhome.com
hpux.polarhome.com
hpux.polarhome.com HP-UX hpux.polarhome.com B.11.11 U 9000/785 (ta)
hpux.polarhome.com Welcome to HPUX... member of polarhome.com realm
hpux.polarhome.com
qnx.polarhome.com
qnx.polarhome.com QNX 6.5.0
qnx.polarhome.com Welcome to QNX ...member of polarhome.com realm
qnx.polarhome.com
qnx.polarhome.com
qnx.polarhome.com QNX 6.5.0
qnx.polarhome.com Welcome to QNX ...member of polarhome.com realm
qnx.polarhome.com
irix.polarhome.com
irix.polarhome.com IRIX64 6.5 07202013 IP35
irix.polarhome.com Welcome to irix ...member of polarhome.com realm
irix.polarhome.com
irix.polarhome.com IRIX64 6.5 07202013 IP35
irix.polarhome.com Welcome to irix ...member of polarhome.com realm
ssh ultrix.polarhome.com rm -f bin/parallel;scp bin/parallel ultrix.polarhome.com:bin/
ssh unixware.polarhome.com rm -f bin/parallel;scp bin/parallel unixware.polarhome.com:bin/
suse.polarhome.com
suse.polarhome.com
suse.polarhome.com
suse.polarhome.com
suse.polarhome.com openSUSE 11.4 "Celadon"
suse.polarhome.com Welcome to SuSE/openSUSE ...member of polarhome.com realm
suse.polarhome.com
suse.polarhome.com
suse.polarhome.com openSUSE 11.4 "Celadon"
suse.polarhome.com Welcome to SuSE/openSUSE ...member of polarhome.com realm
suse.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com OpenIndiana SunOS 5.11
openindiana.polarhome.com Welcome to OpenIndiana ...member of polarhome.com realm
openindiana.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com OpenIndiana SunOS 5.11
openindiana.polarhome.com Welcome to OpenIndiana ...member of polarhome.com realm
openindiana.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com Mandriva Linux release 2010.2 (Official) for x86_64
mandriva.polarhome.com Welcome to Mandrake/Mandriva ...member of polarhome.com realm
mandriva.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com Mandriva Linux release 2010.2 (Official) for x86_64
mandriva.polarhome.com Welcome to Mandrake/Mandriva ...member of polarhome.com realm
mandriva.polarhome.com
unixware.polarhome.com SCO UnixWare 7.1.4
unixware.polarhome.com Welcome to unixware ...member of polarhome.com realm
unixware.polarhome.com
unixware.polarhome.com SCO UnixWare 7.1.4
unixware.polarhome.com Welcome to unixware ...member of polarhome.com realm
unixware.polarhome.com
miros.polarhome.com
miros.polarhome.com MirBSD/i386
miros.polarhome.com Welcome to MirOS ...member of polarhome.com realm
miros.polarhome.com
miros.polarhome.com
miros.polarhome.com MirBSD/i386
miros.polarhome.com Welcome to MirOS ...member of polarhome.com realm
miros.polarhome.com
raspberrypi.polarhome.com Debian GNU/Linux 6.0
raspberrypi.polarhome.com RaspberryPi/bcm2708 reference 2.0
raspberrypi.polarhome.com Welcome to raspberrypi ...member of polarhome.com realm
raspberrypi.polarhome.com
raspberrypi.polarhome.com Debian GNU/Linux 6.0
raspberrypi.polarhome.com RaspberryPi/bcm2708 reference 2.0
raspberrypi.polarhome.com Welcome to raspberrypi ...member of polarhome.com realm
raspberrypi.polarhome.com
hurd.polarhome.com
hurd.polarhome.com Debian GNU/Hurd wheezy/sid
hurd.polarhome.com Welcome to hurd ...member of polarhome.com realm.
hurd.polarhome.com
hurd.polarhome.com
hurd.polarhome.com Debian GNU/Hurd wheezy/sid
hurd.polarhome.com Welcome to hurd ...member of polarhome.com realm.
hurd.polarhome.com
suse.polarhome.com openSUSE 11.4 "Celadon"
suse.polarhome.com openSUSE 11.4 "Celadon"
ubuntu.polarhome.com
ubuntu.polarhome.com
ubuntu.polarhome.com Ubuntu 10.04.2 LTS
ubuntu.polarhome.com Welcome to Ubuntu ...member of polarhome.com realm
ubuntu.polarhome.com
ubuntu.polarhome.com
ubuntu.polarhome.com Ubuntu 10.04.2 LTS
ubuntu.polarhome.com Ubuntu 10.04.2 LTS
ubuntu.polarhome.com Welcome to Ubuntu ...member of polarhome.com realm
ubuntu.polarhome.com
ubuntu.polarhome.com Welcome to Ubuntu ...member of polarhome.com realm
unixware.polarhome.com
unixware.polarhome.com
unixware.polarhome.com SCO UnixWare 7.1.4
unixware.polarhome.com SCO UnixWare 7.1.4
unixware.polarhome.com Welcome to unixware ...member of polarhome.com realm
unixware.polarhome.com Welcome to unixware ...member of polarhome.com realm
Run the test on polarhome machines
scosysv.polarhome.com SCO OpenServer(TM) Release 6
scosysv.polarhome.com Welcome to scosysv ...member of polarhome.com realm
scosysv.polarhome.com
scosysv.polarhome.com Works on scosysv.polarhome.com
centos.polarhome.com
centos.polarhome.com CentOS release 5.6 (Final)
centos.polarhome.com Welcome to CentOS ...member of polarhome.com realm
centos.polarhome.com
centos.polarhome.com Works on centos.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com DragonFly v2.10.1.1
dragonfly.polarhome.com Welcome to DragonFly ...member of polarhome.com realm
dragonfly.polarhome.com
dragonfly.polarhome.com Works on dragonfly.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com NetBSD 5.1
netbsd.polarhome.com Welcome to NetBSD ...member of polarhome.com realm
netbsd.polarhome.com
netbsd.polarhome.com MANPATH: Undefined variable.
netbsd.polarhome.com MANPATH: Undefined variable.
netbsd.polarhome.com Works on netbsd.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com FreeBSD 8.2
freebsd.polarhome.com Welcome to FreeBSD ...member of polarhome.com realm
freebsd.polarhome.com
freebsd.polarhome.com Works on freebsd.polarhome.com
solaris.polarhome.com
solaris.polarhome.com SunOS 5.10
solaris.polarhome.com SUN Ultra-5
solaris.polarhome.com Welcome to Solaris ...member of polarhome.com realm
solaris.polarhome.com
solaris.polarhome.com Works on solaris.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com OpenBSD 4.9
openbsd.polarhome.com Welcome to OpenBSD ...member of polarhome.com realm
openbsd.polarhome.com
openbsd.polarhome.com Works on openbsd.polarhome.com
debian.polarhome.com
debian.polarhome.com Debian GNU/Linux 6.0.2 (squeeze)
debian.polarhome.com Welcome to debian ...member of polarhome.com realm
debian.polarhome.com
debian.polarhome.com Works on debian.polarhome.com
aix.polarhome.com
aix.polarhome.com Welcome to AIX7 ...member of polarhome.com realm
aix.polarhome.com Works on aix.polarhome.com
centos.polarhome.com
centos.polarhome.com
centos.polarhome.com CentOS release 5.6 (Final)
centos.polarhome.com Welcome to CentOS ...member of polarhome.com realm
centos.polarhome.com Works on centos.polarhome.com
debian.polarhome.com
debian.polarhome.com
debian.polarhome.com Debian GNU/Linux 6.0.2 (squeeze)
debian.polarhome.com Welcome to debian ...member of polarhome.com realm
debian.polarhome.com Works on debian.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com DragonFly v2.10.1.1
dragonfly.polarhome.com Welcome to DragonFly ...member of polarhome.com realm
dragonfly.polarhome.com Works on dragonfly.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com FreeBSD 8.2
freebsd.polarhome.com Welcome to FreeBSD ...member of polarhome.com realm
freebsd.polarhome.com Works on freebsd.polarhome.com
hpux.polarhome.com
hpux.polarhome.com
hpux.polarhome.com HP-UX hpux.polarhome.com B.11.11 U 9000/785 (ta)
hpux.polarhome.com Welcome to HPUX... member of polarhome.com realm
hpux.polarhome.com
hpux.polarhome.com No such file or directory: perl
qnx.polarhome.com
qnx.polarhome.com QNX 6.5.0
qnx.polarhome.com Welcome to QNX ...member of polarhome.com realm
qnx.polarhome.com
qnx.polarhome.com perl: No such file or directory
irix.polarhome.com
irix.polarhome.com IRIX64 6.5 07202013 IP35
irix.polarhome.com Welcome to irix ...member of polarhome.com realm
irix.polarhome.com Unknown open() mode '>&' at bin/parallel line 1278, <$fh> line 1.
suse.polarhome.com
suse.polarhome.com openSUSE 11.4 "Celadon"
suse.polarhome.com Welcome to SuSE/openSUSE ...member of polarhome.com realm
suse.polarhome.com
suse.polarhome.com Works on suse.polarhome.com
minix.polarhome.com Works on minix.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com OpenIndiana SunOS 5.11
openindiana.polarhome.com Welcome to OpenIndiana ...member of polarhome.com realm
openindiana.polarhome.com
openindiana.polarhome.com parallel: Warning: Cannot figure out number of CPU cores. Using 1.
openindiana.polarhome.com Works on openindiana.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com Mandriva Linux release 2010.2 (Official) for x86_64
mandriva.polarhome.com Welcome to Mandrake/Mandriva ...member of polarhome.com realm
mandriva.polarhome.com
mandriva.polarhome.com Works on mandriva.polarhome.com
unixware.polarhome.com SCO UnixWare 7.1.4
unixware.polarhome.com Welcome to unixware ...member of polarhome.com realm
unixware.polarhome.com
unixware.polarhome.com Works on unixware.polarhome.com
miros.polarhome.com
miros.polarhome.com MirBSD/i386
miros.polarhome.com Welcome to MirOS ...member of polarhome.com realm
miros.polarhome.com
miros.polarhome.com Works on miros.polarhome.com
raspberrypi.polarhome.com
raspberrypi.polarhome.com CentOS release 5.6 (Final)
raspberrypi.polarhome.com Welcome to CentOS ...member of polarhome.com realm
raspberrypi.polarhome.com
raspberrypi.polarhome.com Works on raspberrypi.polarhome.com
hpux.polarhome.com Welcome to HPUX... member of polarhome.com realm
hurd.polarhome.com
hurd.polarhome.com
hurd.polarhome.com Debian GNU/Hurd wheezy/sid
hurd.polarhome.com Welcome to hurd ...member of polarhome.com realm.
hurd.polarhome.com
hurd.polarhome.com Works on hurd.polarhome.com
ultrix.polarhome.com Variable "$VERSION" is not imported at Errno.pm line 10.
ultrix.polarhome.com Global symbol "VERSION" requires explicit package name at Errno.pm line 10.
ultrix.polarhome.com Variable "$VERSION" is not imported at Errno.pm line 11.
ultrix.polarhome.com Global symbol "VERSION" requires explicit package name at Errno.pm line 11.
ultrix.polarhome.com Variable "$VERSION" is not imported at Errno.pm line 11.
ultrix.polarhome.com Global symbol "VERSION" requires explicit package name at Errno.pm line 11.
ultrix.polarhome.com Variable "@ISA" is not imported at Errno.pm line 12.
ultrix.polarhome.com Global symbol "ISA" requires explicit package name at Errno.pm line 12.
ultrix.polarhome.com Variable "@EXPORT_OK" is not imported at Errno.pm line 14.
ultrix.polarhome.com Global symbol "EXPORT_OK" requires explicit package name at Errno.pm line 14.
ultrix.polarhome.com Variable "%EXPORT_TAGS" is not imported at Errno.pm line 32.
ultrix.polarhome.com Global symbol "EXPORT_TAGS" requires explicit package name at Errno.pm line 32.
ultrix.polarhome.com BEGIN not safe after errors--compilation aborted at Errno.pm line 188.
ultrix.polarhome.com BEGIN failed--compilation aborted at File/Temp.pm line 148.
ultrix.polarhome.com BEGIN failed--compilation aborted at bin/parallel line 28.
irix.polarhome.com
irix.polarhome.com IRIX64 6.5 07202013 IP35
irix.polarhome.com Unknown open() mode '>&' at bin/parallel line 1274, <$fh> line 1.
irix.polarhome.com Welcome to irix ...member of polarhome.com realm
mandriva.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com Mandriva Linux release 2010.2 (Official) for x86_64
mandriva.polarhome.com Welcome to Mandrake/Mandriva ...member of polarhome.com realm
mandriva.polarhome.com Works on mandriva.polarhome.com
minix.polarhome.com Works on minix.polarhome.com
miros.polarhome.com
miros.polarhome.com
miros.polarhome.com MirBSD/i386
miros.polarhome.com Welcome to MirOS ...member of polarhome.com realm
miros.polarhome.com Works on miros.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com NetBSD 5.1
netbsd.polarhome.com Welcome to NetBSD ...member of polarhome.com realm
netbsd.polarhome.com Works on netbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com OpenBSD 4.9
openbsd.polarhome.com Welcome to OpenBSD ...member of polarhome.com realm
openbsd.polarhome.com Works on openbsd.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com OpenIndiana SunOS 5.11
openindiana.polarhome.com Welcome to OpenIndiana ...member of polarhome.com realm
openindiana.polarhome.com Works on openindiana.polarhome.com
openindiana.polarhome.com parallel: Warning: Cannot figure out number of CPU cores. Using 1.
qnx.polarhome.com
qnx.polarhome.com
qnx.polarhome.com QNX 6.5.0
qnx.polarhome.com Welcome to QNX ...member of polarhome.com realm
qnx.polarhome.com perl: No such file or directory
raspberrypi.polarhome.com
raspberrypi.polarhome.com
raspberrypi.polarhome.com CentOS release 5.6 (Final)
raspberrypi.polarhome.com Welcome to CentOS ...member of polarhome.com realm
raspberrypi.polarhome.com Works on raspberrypi.polarhome.com
scosysv.polarhome.com
scosysv.polarhome.com SCO OpenServer(TM) Release 6
scosysv.polarhome.com Welcome to scosysv ...member of polarhome.com realm
scosysv.polarhome.com Works on scosysv.polarhome.com
solaris.polarhome.com
solaris.polarhome.com
solaris.polarhome.com SUN Ultra-5
solaris.polarhome.com SunOS 5.10
solaris.polarhome.com Welcome to Solaris ...member of polarhome.com realm
solaris.polarhome.com Works on solaris.polarhome.com
suse.polarhome.com
suse.polarhome.com
suse.polarhome.com Welcome to SuSE/openSUSE ...member of polarhome.com realm
suse.polarhome.com Works on suse.polarhome.com
suse.polarhome.com openSUSE 11.4 "Celadon"
ubuntu.polarhome.com
ubuntu.polarhome.com
ubuntu.polarhome.com Ubuntu 10.04.2 LTS
ubuntu.polarhome.com Welcome to Ubuntu ...member of polarhome.com realm
ubuntu.polarhome.com
ubuntu.polarhome.com Works on ubuntu.polarhome.com
ultrix.polarhome.com BEGIN failed--compilation aborted at File/Temp.pm line 148.
ultrix.polarhome.com BEGIN failed--compilation aborted at bin/parallel line 28.
ultrix.polarhome.com BEGIN not safe after errors--compilation aborted at Errno.pm line 188.
ultrix.polarhome.com Global symbol "EXPORT_OK" requires explicit package name at Errno.pm line 14.
ultrix.polarhome.com Global symbol "EXPORT_TAGS" requires explicit package name at Errno.pm line 32.
ultrix.polarhome.com Global symbol "ISA" requires explicit package name at Errno.pm line 12.
ultrix.polarhome.com Global symbol "VERSION" requires explicit package name at Errno.pm line 10.
ultrix.polarhome.com Global symbol "VERSION" requires explicit package name at Errno.pm line 11.
ultrix.polarhome.com Global symbol "VERSION" requires explicit package name at Errno.pm line 11.
ultrix.polarhome.com Variable "$VERSION" is not imported at Errno.pm line 10.
ultrix.polarhome.com Variable "$VERSION" is not imported at Errno.pm line 11.
ultrix.polarhome.com Variable "$VERSION" is not imported at Errno.pm line 11.
ultrix.polarhome.com Variable "%EXPORT_TAGS" is not imported at Errno.pm line 32.
ultrix.polarhome.com Variable "@EXPORT_OK" is not imported at Errno.pm line 14.
ultrix.polarhome.com Variable "@ISA" is not imported at Errno.pm line 12.
unixware.polarhome.com
unixware.polarhome.com SCO UnixWare 7.1.4
unixware.polarhome.com Welcome to unixware ...member of polarhome.com realm
unixware.polarhome.com Works on unixware.polarhome.com

View file

@ -655,7 +655,7 @@ args on cmdline
\nice -n1 /bin/bash -c PAR=a\ bash\ -c\ \"echo\ \ \\\$PAR\ b\"
a b
### Test --nice remote
ssh -tt -oLogLevel=quiet one-server 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;\\nice\ -n1\ /bin/bash\ -c\ PAR=a\\\ bash\\\ -c\\\ \\\"echo\\\ \\\ \\\\\\\$PAR\\\ b\\\";
ssh -tt -oLogLevel=quiet one-server 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;\\nice\ -n1\ /bin/bash\ -c\ PAR=a\\\ bash\\\ -c\\\ \\\"echo\\\ \\\ \\\\\\\$PAR\\\ b\\\";
a b
### Test distribute arguments at EOF to 2 jobslots
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

View file

@ -76,7 +76,7 @@ ls: tmp/parallel.file*: No such file or directory
OK
Input for ssh
-l parallel parallel-server1 rsync --server -lDrRze.iLsf . .
-tt -oLogLevel=quiet parallel@parallel-server1 eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ 2\; setenv PARALLEL_PID 00000 || echo PARALLEL_SEQ=2\;export PARALLEL_SEQ\; PARALLEL_PID=00000\;export PARALLEL_PID` ; tty >/dev/null && stty isig -onlcr -echo;cat tmp/parallel.file.'
-tt -oLogLevel=quiet parallel@parallel-server1 eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ 2\; setenv PARALLEL_PID 00000 || echo PARALLEL_SEQ=2\;export PARALLEL_SEQ\; PARALLEL_PID=00000\;export PARALLEL_PID` ; tty >/dev/null && stty isig -onlcr -echo;cat tmp/parallel.file.'
'newline2 > tmp/parallel.file.'
'newline2.out;cat tmp/parallel.file.'
'newline2 > tmp/parallel.file.'
@ -90,7 +90,7 @@ parallel@parallel-server1 rm -f ./tmp/parallel.file.'
'newline2.out;rmdir 2>/dev/null ./tmp;rm -f ./tmp/parallel.file.'
'newline2.out2;rmdir 2>/dev/null ./tmp;
-l parallel parallel-server2 rsync --server -lDrRze.iLsf . .
-tt -oLogLevel=quiet parallel@parallel-server2 eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ 1\; setenv PARALLEL_PID 00000 || echo PARALLEL_SEQ=1\;export PARALLEL_SEQ\; PARALLEL_PID=00000\;export PARALLEL_PID` ; tty >/dev/null && stty isig -onlcr -echo;cat tmp/parallel.file.'
-tt -oLogLevel=quiet parallel@parallel-server2 eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ 1\; setenv PARALLEL_PID 00000 || echo PARALLEL_SEQ=1\;export PARALLEL_SEQ\; PARALLEL_PID=00000\;export PARALLEL_PID` ; tty >/dev/null && stty isig -onlcr -echo;cat tmp/parallel.file.'
'newline1 > tmp/parallel.file.'
'newline1.out;cat tmp/parallel.file.'
'newline1 > tmp/parallel.file.'

View file

@ -1,21 +1,21 @@
### Test $PARALLEL - single line
1
ssh -l parallel -tt -oLogLevel=quiet parallel-server2 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 1;
ssh -l parallel -tt -oLogLevel=quiet parallel-server2 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 1;
1
ssh -tt -oLogLevel=quiet parallel\@parallel-server3 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 2;
ssh -tt -oLogLevel=quiet parallel\@parallel-server3 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 2;
2
### Test $PARALLEL - multi line
ssh -l parallel -tt -oLogLevel=quiet parallel-server2 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 1;
ssh -l parallel -tt -oLogLevel=quiet parallel-server2 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 1;
1
ssh -tt -oLogLevel=quiet parallel\@parallel-server3 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 2;
ssh -tt -oLogLevel=quiet parallel\@parallel-server3 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 2;
2
### Test ~/.parallel/config - single line
ssh -l parallel -tt -oLogLevel=quiet parallel-server2 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 1;
ssh -l parallel -tt -oLogLevel=quiet parallel-server2 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 1;
1
ssh -tt -oLogLevel=quiet parallel\@parallel-server3 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 2;
ssh -tt -oLogLevel=quiet parallel\@parallel-server3 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 2;
2
### Test ~/.parallel/config - multi line
ssh -l parallel -tt -oLogLevel=quiet parallel-server2 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 1;
ssh -l parallel -tt -oLogLevel=quiet parallel-server2 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 1;
1
ssh -tt -oLogLevel=quiet parallel\@parallel-server3 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 2;
ssh -tt -oLogLevel=quiet parallel\@parallel-server3 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ 2;
2

View file

@ -42,7 +42,7 @@ echo /dev/fd/62
/dev/fd/62
echo foo
foo
ssh parallel@parallel-server3 ssh -tt -oLogLevel=quiet parallel-server2 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;perl\ -pe\ \"\\\$a=1\;\ print\ \\\$a\"\ \<\(echo\ foo\);
ssh parallel@parallel-server3 ssh -tt -oLogLevel=quiet parallel-server2 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;perl\ -pe\ \"\\\$a=1\;\ print\ \\\$a\"\ \<\(echo\ foo\);
1foo
### Test quoting of $ in command from profile file
perl -pe '$a=1; print $a' <(echo foo)

View file

@ -1,11 +1,11 @@
### Test --return of weirdly named file
ssh -tt -oLogLevel=quiet parallel@parallel-server3 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ \>aa\\\<\\\$\\\{\\\#\\\}\\\"\\\ b;_EXIT_status=$?; mkdir -p .; rsync --rsync-path=cd\ ./.\;\ rsync -rlDzR -essh parallel@parallel-server3:aa\\\<\\\$\\\{\\\#\\\}\\\"\\\ b .; exit $_EXIT_status;
ssh -tt -oLogLevel=quiet parallel@parallel-server3 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ \>aa\\\<\\\$\\\{\\\#\\\}\\\"\\\ b;_EXIT_status=$?; mkdir -p .; rsync --rsync-path=cd\ ./.\;\ rsync -rlDzR -essh parallel@parallel-server3:aa\\\<\\\$\\\{\\\#\\\}\\\"\\\ b .; exit $_EXIT_status;
### Test if remote login shell is csh
ssh -tt -oLogLevel=quiet csh@localhost 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ \$PARALLEL_PID\ \$PARALLEL_SEQ\ a\|\ wc\ -w;
ssh -tt -oLogLevel=quiet csh@localhost 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ \$PARALLEL_PID\ \$PARALLEL_SEQ\ a\|\ wc\ -w;
3
ssh -tt -oLogLevel=quiet csh@localhost 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ \$PARALLEL_PID\ \$PARALLEL_SEQ\ b\|\ wc\ -w;
ssh -tt -oLogLevel=quiet csh@localhost 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ \$PARALLEL_PID\ \$PARALLEL_SEQ\ b\|\ wc\ -w;
3
ssh -tt -oLogLevel=quiet csh@localhost 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ \$PARALLEL_PID\ \$PARALLEL_SEQ\ c\|\ wc\ -w;
ssh -tt -oLogLevel=quiet csh@localhost 'eval `echo $SHELL | grep "/t\{0,1\}csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' tty\ \>/dev/null\ \&\&\ stty\ isig\ -onlcr\ -echo\;echo\ \$PARALLEL_PID\ \$PARALLEL_SEQ\ c\|\ wc\ -w;
3
### Test {} multiple times in different commands
echo 1 2 3 4 5 6 7 8 9 10 ; echo 1 2 3 4 5 6 7 8 9 10