mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-25 23:47:53 +00:00
parallel: Fix --filter-hosts -S :.
--controlmaster: Kill remote sleep 100000000.
This commit is contained in:
parent
19bdd17c63
commit
8078bda2bb
|
@ -221,6 +221,8 @@ New in this release:
|
|||
|
||||
* GNU Parallel was used (unfortunately with improper citation) in: Perspectives in magnetic resonance: NMR in the post-FFT era http://www.sciencedirect.com/science/article/pii/S1090780713003054
|
||||
|
||||
* Speeding Up Grep Log Queries with GNU Parallel http://www.cybersecurity.io/speeding-grep-queries-gnu-parallel/
|
||||
|
||||
* How to run tbss_2_reg in parallel http://tadpolebrainimaging.blogspot.dk/2014/03/how-to-run-tbss2reg-in-parallel.html
|
||||
|
||||
* Iterative DNS Brute Forcing http://www.room362.com/blog/2014/02/19/iterative-dns-brute-forcing/
|
||||
|
|
|
@ -1969,6 +1969,7 @@ sub cleanup_basefile {
|
|||
sub filter_hosts {
|
||||
my(@cores, @cpus, @maxline, @echo);
|
||||
while (my ($host, $sshlogin) = each %Global::host) {
|
||||
if($host eq ":") { next }
|
||||
# The 'true' is used to get the $host out later
|
||||
my $sshcmd = "true $host;" . $sshlogin->sshcommand()." ".$sshlogin->serverlogin();
|
||||
push(@cores, $host."\t".$sshcmd." ".$Global::envvar." parallel --number-of-cores\n");
|
||||
|
@ -2063,6 +2064,7 @@ sub filter_hosts {
|
|||
@down_hosts and ::warning("Removed @down_hosts\n");
|
||||
$Global::minimal_command_line_length = 8_000_000;
|
||||
while (my ($sshlogin, $obj) = each %Global::host) {
|
||||
if($sshlogin eq ":") { next }
|
||||
$ncpus{$sshlogin} or ::die_bug("ncpus missing: ".$obj->serverlogin());
|
||||
$ncores{$sshlogin} or ::die_bug("ncores missing: ".$obj->serverlogin());
|
||||
$time_to_login{$sshlogin} or ::die_bug("time_to_login missing: ".$obj->serverlogin());
|
||||
|
@ -3828,7 +3830,7 @@ sub sshcommand_of_sshlogin {
|
|||
$serverlogin = $self->{'string'};
|
||||
# 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 1000000000 2>/dev/null";
|
||||
my $master = "ssh -tt -MTS $control_path $serverlogin sleep 1000000000 2>/dev/null";
|
||||
if(not $self->{'control_path'}{$control_path}++) {
|
||||
# Master is not running for this control_path
|
||||
# Start it
|
||||
|
|
|
@ -72,10 +72,27 @@ B<xargs>. If I<command> is not given GNU B<parallel> will behave
|
|||
similar to B<cat | sh>.
|
||||
|
||||
The I<command> must be an executable, a script, a composed command, or
|
||||
a function. If it is a Bash function you need to B<export -f> the
|
||||
a function.
|
||||
|
||||
If it is a Bash function you need to B<export -f> the
|
||||
function first. An alias will, however, not work (see why
|
||||
http://www.perlmonks.org/index.pl?node_id=484296).
|
||||
|
||||
If it is a zsh function you will need to use this helper function
|
||||
B<exportf> to export and to set $SHELL to bash:
|
||||
|
||||
function exportf (){
|
||||
export $(echo $1)="`whence -f $1 | sed -e "s/$1 //" `"
|
||||
}
|
||||
|
||||
function my_func(){
|
||||
echo $1;
|
||||
echo "hello";
|
||||
}
|
||||
|
||||
exportf my_func
|
||||
SHELL=/bin/bash parallel "my_func {}" ::: 1 2
|
||||
|
||||
|
||||
=item B<{}>
|
||||
|
||||
|
@ -510,7 +527,7 @@ environment that the command is run in. This is especially useful for
|
|||
remote execution.
|
||||
|
||||
In Bash I<var> can also be a Bash function - just remember to B<export
|
||||
-f> the function.
|
||||
-f> the function, see B<command>.
|
||||
|
||||
The variable '_' is special. It will copy all enviroment variables
|
||||
except for the ones mentioned in ~/.parallel/ignored_vars.
|
||||
|
|
Loading…
Reference in a new issue