- bprun --job
- bprun --curses
- Terminology: machine vs. host
-- ssh options
- Detector of orphans (unused queue dirs, jobs on non-existent machines, non-queued jobs)
- job failed => give a more explanatory message
- write_job_status should be atomic
update_status($mach, $jid, 'SEND', undef);
my $cmd = 't=$(mktemp -t bex-XXXXXXXX) && cat >$t && chmod u+x $t && echo $t';
- my $rtmp = `ssh <$tmp $host '$cmd'`;
+ my $rtmp = `$BEX::Config::ssh_command <$tmp $host '$cmd'`;
!$? && defined($rtmp) && $rtmp ne '' or return ('NOXFER', 'Transfer failed');
chomp $rtmp;
update_status($mach, $jid, 'RUN', $queue);
my $lf = $queue->log_file($mach, $jid);
- system 'bash', '-o', 'pipefail', '-c', "ssh -t $host '$rtmp ; e=\$? ; rm -f $rtmp ; exit \$e' 2>&1 | tee -a $lf";
+ system 'bash', '-o', 'pipefail', '-c', "$BEX::Config::ssh_command -t $host '$rtmp ; e=\$? ; rm -f $rtmp ; exit \$e' 2>&1 | tee -a $lf";
if ($?) {
return ('FAILED', 'Job failed ' . exit_status($?));
} else {
# still could run such jobs in parallel)
our $skip_on_fail = 0;
+# How we run ssh (including options)
+our $ssh_command = "ssh";
+
# Various utility functions
sub parse_machine_list(@);