2014-09-09 5 views
2

Как запустить процесс Symfony2 в фоновом режиме?Symfony2 background process

Мой код:

class Start extends Symfony\Component\Console\Command\Command { 

    protected function configure() { 
    $this->setName('start'); 
    } 

    protected function execute(InputInterface $input, OutputInterface $output) { 
    $process = new Process('java -jar ./selenium-server-standalone-2.42.2.jar'); 
    $process->setTimeout(null); 
    $process->start(); 
    $pid = $process->getPid(); 
    $output->writeLn(sprintf('Started selenium with PID %d', $pid)); 
    $process->wait(); 
    } 

} 

Как я могу запустить этот процесс в фоновом режиме? Думаю, я должен перенаправить STDOUT нового процесса на/dev/null, но как я могу это сделать?

ответ

0

О, я нашел, что это возможно в Symfony 2.5+, так что я только что обновил его и добавил

$process->disableOutput(); 

, прежде чем $ процессно> начать() и она отлично работает.

UPD.

К сожалению, это не работает в Windows. Я также попытался запустить «START команду/B» и

'CALL command > nul 2>&1' 

, но оба этих неудавшийся: процесс был запущен, но консоль по-прежнему заблокирована.