mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-29 09:27:56 +00:00
src/parallel: Fixed --filter-hosts. Bug due to --joblog - not working.
This commit is contained in:
parent
21a77662ab
commit
14b15f3d43
33
src/parallel
33
src/parallel
|
@ -39,9 +39,7 @@ if(not $ENV{SHELL}) {
|
||||||
::warning("\$SHELL not set. Using /bin/sh.\n");
|
::warning("\$SHELL not set. Using /bin/sh.\n");
|
||||||
$ENV{SHELL} = "/bin/sh";
|
$ENV{SHELL} = "/bin/sh";
|
||||||
}
|
}
|
||||||
%Global::original_sig = %SIG;
|
save_sig_stdin_stdout_stderr();
|
||||||
$SIG{TERM} = sub {}; # Dummy until jobs really start
|
|
||||||
open $Global::original_stderr, ">&STDERR" or ::die_bug("Can't dup STDERR: $!");
|
|
||||||
|
|
||||||
parse_options();
|
parse_options();
|
||||||
my $number_of_args;
|
my $number_of_args;
|
||||||
|
@ -641,7 +639,7 @@ sub get_options_from_array {
|
||||||
sub parse_options {
|
sub parse_options {
|
||||||
# Returns: N/A
|
# Returns: N/A
|
||||||
# Defaults:
|
# Defaults:
|
||||||
$Global::version = 20130622;
|
$Global::version = 20130626;
|
||||||
$Global::progname = 'parallel';
|
$Global::progname = 'parallel';
|
||||||
$Global::infinity = 2**31;
|
$Global::infinity = 2**31;
|
||||||
$Global::debug = 0;
|
$Global::debug = 0;
|
||||||
|
@ -967,16 +965,18 @@ sub open_joblog {
|
||||||
::wait_and_exit(255);
|
::wait_and_exit(255);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
# Overwrite the joblog
|
if($opt::joblog eq "-") {
|
||||||
if(not open($Global::joblog, ">", $opt::joblog)) {
|
# Use STDOUT as joblog
|
||||||
|
$Global::joblog = $Global::original_stdout
|
||||||
|
} elsif(not open($Global::joblog, ">", $opt::joblog)) {
|
||||||
|
# Overwrite the joblog
|
||||||
::error("Cannot write to --joblog $opt::joblog.\n");
|
::error("Cannot write to --joblog $opt::joblog.\n");
|
||||||
::wait_and_exit(255);
|
::wait_and_exit(255);
|
||||||
} else {
|
|
||||||
print $Global::joblog
|
|
||||||
join("\t", "Seq", "Host", "Starttime", "Runtime",
|
|
||||||
"Send", "Receive", "Exitval", "Signal", "Command"
|
|
||||||
). "\n";
|
|
||||||
}
|
}
|
||||||
|
print $Global::joblog
|
||||||
|
join("\t", "Seq", "Host", "Starttime", "Runtime",
|
||||||
|
"Send", "Receive", "Exitval", "Signal", "Command"
|
||||||
|
). "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1268,15 +1268,20 @@ sub __RUNNING_THE_JOBS_AND_PRINTING_PROGRESS__ {}
|
||||||
# $Global::total_running = total number of running jobs
|
# $Global::total_running = total number of running jobs
|
||||||
# $Global::total_started = total jobs started
|
# $Global::total_started = total jobs started
|
||||||
|
|
||||||
sub init_run_jobs {
|
sub save_sig_stdin_stdout_stderr {
|
||||||
# Remember the original STDOUT and STDERR
|
# Remember the original signal handler, STDIN, STDOUT and STDERR
|
||||||
# Returns: N/A
|
# Returns: N/A
|
||||||
|
%Global::original_sig = %SIG;
|
||||||
|
$SIG{TERM} = sub {}; # Dummy until jobs really start
|
||||||
open $Global::original_stdout, ">&", "STDOUT" or
|
open $Global::original_stdout, ">&", "STDOUT" or
|
||||||
::die_bug("Can't dup STDOUT: $!");
|
::die_bug("Can't dup STDOUT: $!");
|
||||||
open $Global::original_stderr, ">&", "STDERR" or
|
open $Global::original_stderr, ">&", "STDERR" or
|
||||||
::die_bug("Can't dup STDERR: $!");
|
::die_bug("Can't dup STDERR: $!");
|
||||||
open $Global::original_stdin, "<&", "STDIN" or
|
open $Global::original_stdin, "<&", "STDIN" or
|
||||||
::die_bug("Can't dup STDIN: $!");
|
::die_bug("Can't dup STDIN: $!");
|
||||||
|
}
|
||||||
|
|
||||||
|
sub init_run_jobs {
|
||||||
$Global::total_running = 0;
|
$Global::total_running = 0;
|
||||||
$Global::total_started = 0;
|
$Global::total_started = 0;
|
||||||
$Global::tty_taken = 0;
|
$Global::tty_taken = 0;
|
||||||
|
@ -2789,7 +2794,7 @@ sub simultaneous_sshlogin_limit {
|
||||||
# Choose the minimal
|
# Choose the minimal
|
||||||
my $ssh_limit =
|
my $ssh_limit =
|
||||||
::min($self->simultaneous_sshlogin($wanted_processes),
|
::min($self->simultaneous_sshlogin($wanted_processes),
|
||||||
$self->simultaneous_sshlogin($wanted_processes));
|
$self->simultaneous_sshlogin($wanted_processes));
|
||||||
if($ssh_limit < $wanted_processes) {
|
if($ssh_limit < $wanted_processes) {
|
||||||
my $serverlogin = $self->serverlogin();
|
my $serverlogin = $self->serverlogin();
|
||||||
::warning("ssh to $serverlogin only allows ",
|
::warning("ssh to $serverlogin only allows ",
|
||||||
|
|
|
@ -1377,7 +1377,7 @@ seconds it will get killed with SIGTERM, followed by SIGTERM 200 ms
|
||||||
later, followed by SIGKILL 200 ms later.
|
later, followed by SIGKILL 200 ms later.
|
||||||
|
|
||||||
If I<val> is followed by a % then the timeout will dynamically be
|
If I<val> is followed by a % then the timeout will dynamically be
|
||||||
computed as a percentage of the smoothed average runtime. Only values
|
computed as a percentage of the median average runtime. Only values
|
||||||
> 100% will make sense.
|
> 100% will make sense.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue