При использовании функции php passthru() по умолчанию остается до завершения выполнения внешнего скрипта.
В руководстве по PHP говорится ::::: «Если программа запущена с помощью этой функции, для того, чтобы она продолжала работать в фоновом режиме, вывод программы должен быть перенаправлен в файл или другой поток вывода. В противном случае будет вызвать зависание PHP до тех пор, пока выполнение программы не завершится». - http://php.net/manual/en/function.passthru.php
Я хочу собирать внешние данные скрипта за определенное время, например. на 30 секунд, а после этого продолжить выполнение php-скрипта. Любые идеи, как это сделать?
Мой текущий код:
ob_start();
passthru("/home/somefolder/somefolder2/program $pic1 $pic2");
$details = ob_get_contents();
ob_end_clean();
Проблема в приведенном выше коде заключается в том, что иногда «программный» скрипт продолжает выполняться некоторое время, но я не хочу, чтобы пользователь зависал в этом процессе более 30 секунд.
Я подумал о перенаправлении вывода в файл и прочитал его через 30 секунд (согласно мануалу). Но я не знаю, как перенаправить вывод в файл.