@riki13
php

Как реализовать запуск консольных команд на php?

Здраствуйте вопрос вот в чем реализую запуск консольных команд на php, использую proc_open, команда выполняется за 5-20 секунд то все нормально, а если больше 30 то не понятно что вообще происходит вот отрывок кода с реализацией
$item->setStatus(Queue::PROCESSING);
        $cmd = $item->task->getCMD();
        $cmd = escapeshellcmd($cmd);
        $path = 'Путь до лог файла';
        $cdw = 'Путь где будут запускаться команды';
        $descript = [
            ["pipe", "r"], // stdin - канал, из которого дочерний процесс будет читать
            ["file", $path, "w"], // stdout - канал, в который дочерний процесс будет записывать
            ["file", $path, "a"] // stderr - файл для записи
        ];
        $this->proc = proc_open($cmd, $descript,$pipes, $cdw);
        $status = $this->getStatus();
        $item->setPID($status['pid']);
        proc_close($this->proc);

        //все что ниже если выполнение занимает больше 30 секунд отпадает если же секунд 15 выполняется
        $message = file_get_contents($path);
        $item->setMessage($message);
        $taskStatus = $this->checkError($message) ? Queue::ERROR : Queue::READY;
        $item->setStatus($taskStatus);

не могу понять в чем причина? с php что то? с конфигом может может еще с чем то? и самое главное как решить проблему?
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы