Jobby\BackgroundJob::runFile PHP Method

runFile() protected method

protected runFile ( )
    protected function runFile()
    {
        // If job should run as another user, we must be on *nix and
        // must have sudo privileges.
        $isUnix = $this->helper->getPlatform() === Helper::UNIX;
        $useSudo = '';
        if ($isUnix) {
            $runAs = $this->config['runAs'];
            $isRoot = posix_getuid() === 0;
            if (!empty($runAs) && $isRoot) {
                $useSudo = "sudo -u {$runAs}";
            }
        }
        // Start execution. Run in foreground (will block).
        $command = $this->config['command'];
        $logfile = $this->getLogfile() ?: $this->helper->getSystemNullDevice();
        exec("{$useSudo} {$command} 1>> \"{$logfile}\" 2>&1", $dummy, $retval);
        if ($retval !== 0) {
            throw new Exception("Job exited with status '{$retval}'.");
        }
    }