diff --git a/src/Command/DaemonCommand.php b/src/Command/DaemonCommand.php index 319de74..ebff8a3 100644 --- a/src/Command/DaemonCommand.php +++ b/src/Command/DaemonCommand.php @@ -70,6 +70,7 @@ class DaemonCommand extends Command sleep(1); } $output->writeln('Ended after ' . $timelimit . ' seconds'); + pcntl_wait($status); return Command::SUCCESS; } } diff --git a/src/Repository/Job.php b/src/Repository/Job.php index b150e21..b6ae084 100644 --- a/src/Repository/Job.php +++ b/src/Repository/Job.php @@ -112,10 +112,15 @@ class Job extends Repository } if (!$ssh->login($user, $key)) { - throw new \Exception('Login failed'); + $return['output'] = "Login failed"; + $return['exitcode'] = 255; + return $return; } - $return['output'] = $ssh->exec($command); - $return['exitcode'] = $ssh->getExitStatus(); + $command .= ';echo "[return_code:$?]"'; + $output = $ssh->exec($command); + preg_match( '/\[return_code:(.*?)\]/', $output, $match ); + $return['output'] = str_replace($match[0] . "\n", '', $output); + $return['exitcode'] = $match[1]; return $return; }