Snorway
@Snorway

Почему при использовании shell_exec() виснет PHP?

На одной из страниц сайта используется ф-ция shell_exec(). Проблема в том, что в момент, когда скрипт с вызовом этой ф-ции запустился, PHP перестает реагировать до момента, пока shell_exec() не вернет результат. Т.е. PHP как бы виснет, новые страницы не открываются. Как можно запускать команду, чтобы не вешать PHP? При этом важно получить данные, которые возвращает shell_exec().
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Вы правильно все поняли, это синхронный вызов, и он ждет результат.

Если вам результат не нужен прямо сейчас, можно перенаправить его в файл, например.
" > /tmp/myfile.txt 2>/dev/null &" 2 - это вывод stderr, можете отправлять его в error.log или в тот-же myfile.txt

Еще вариант, запускать его в другом потоке.

А если результат нужен прямо сейчас, то придется ждать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы