my $ready;
while (<$boot>){
- last if ($ready = /Welcome to Buildroot/ || /UGW started/);
+ last if ($ready = m/Welcome to Buildroot/ ||
+ m/UGW started/ ||
+ m/t...a...s...k...s... ...s...t...a...r...t...e...d/); # RTEMS has bug - it sends 4 characters instead of just one
}
die "Boot failed" unless $ready;
sub run_boot()
{
# die("No boot command") if ($#ARGV eq -1);
- my $bootcmd = "'".join("' '", @ARGV)."'";
-
- $bootcmd ||= "$FindBin::Bin/boot";
+ my $bootcmd = scalar @ARGV ? "'".join("' '", @ARGV)."'" : "$FindBin::Bin/boot";
$SIG{INT} = sub { kill_boot(); exit; };
+ $SIG{HUP} = sub { kill_boot(); exit; };
+ $SIG{ALRM} = sub { kill_boot(); exit; };
+ $SIG{TERM} = sub { kill_boot(); exit; };
+ $SIG{QUIT} = sub { kill_boot(); exit; };
pipe($boot, $wh) || die("pipe: $!");
my $pid = fork() // die("fork: $!");