Symfony Process не выполняет команду

Из метода контроллера я хочу запустить команду Symfony в фоновом режиме.

public function collaboratorsSendInvitationsAction($company_id)
{
    $process = new Process(
        'php ' .  $this->get('kernel')->getRootDir() . '/console nd:company send-invitations --id ' . $company_id
    );
    $process->start();

    return $this->redirectToRoute('collaborators_list', [
        'company_id' => $company_id,
    ]);
}

Процесс, кажется, работает, потому что если я выполню $process->getPid(); Я получаю pid, но команда не выполняется.

Я исследовал, провел несколько тестов и получаю следующий результат: Когда я комментирую строку 290 класса Process.php ($this->status = self::STATUS_STARTED;) затем команда выполняется. Если нет, ничего не происходит.

Кто-нибудь сталкивался с этой проблемой? Что может вызвать это? Я указываю, что я использую Symfony 2.8.28 и PHP 7.1.10. Проблема обнаружена на MacOS и Ubuntu Server.

Когда я сбрасываю процесс и выполняю отображаемую вручную команду, все работает.

0 ответов

Другие вопросы по тегам