]> rtime.felk.cvut.cz Git - can-benchmark.git/blobdiff - continuous/gw-setup/run.pl
Send target's output to stdout rather than to stderr
[can-benchmark.git] / continuous / gw-setup / run.pl
index d026b12fa0e3792e505a4e1366dd5e94e2b49553..068c5dda754346275ed135930142f42023dbcce9 100755 (executable)
@@ -34,7 +34,7 @@ my $status = system((qw(ssh -T glab), $latester));
 kill('TERM', -$pid);
 exit($status >> 8);
 
-
+sub kill_boot() { kill('TERM', -$pid) if defined $pid; }
 sub run_boot()
 {
     # die("No boot command") if ($#ARGV eq -1);
@@ -42,6 +42,8 @@ sub run_boot()
 
     my $bootcmd = "$FindBin::Bin/boot";
 
+    $SIG{INT} = sub { kill_boot(); exit; };
+
     pipe($boot, $wh) || die("pipe: $!");
     my $pid = fork() // die("fork: $!");
     if ($pid == 0) {
@@ -49,11 +51,11 @@ sub run_boot()
                    # background processes at once
        close($boot);
        open(STDERR, ">&", $wh) || die "Can't dup STDERR: $!";
-       my $cmd = "$bootcmd | tee /dev/stderr";
+       my $cmd = "$bootcmd 2>&1 | tee /dev/stderr";
        exec($cmd) || die "Can't exec $cmd: $!";
     }
     close($wh);
     return $pid;
 }
 
-END { kill('TERM', -$pid) if defined $pid; }
+END { kill_boot(); }