Запуск из PHP не дает вывода

Я боролся сexec(), пытаясь захватить вывод из него, когда я добавляю задачу, используяat Unix системная команда. Моя проблема в том, что при запуске из моего скрипта он не выдает никаких данных, однако запускает его из терминалаand PHP в интерактивном режиме выводит пару строк.

Команда, которую я хочу выполнить:

echo exec("echo 'php -f /path/to/file.php foo=1' | at now + 1 minutes", $result);

var_dump() даетstring(0) "", а такжеprint_r() выплевываетArray (), Я пытался использоватьshell_exec()какие выводыNULLОднако следующие выводыhi при запуске в контексте веб-страницы:

echo exec("echo 'hi'");

Это также выводит вещи:

echo exec("atq");

Однако, как только я используюatничего не выводится. Как я могу получить вывод:

exec("echo 'php -f /path/to/file.php foo=1' | at now + 1 minutes", $result);

Потому что в настоящее время он ничего не выводит, когда работает как "нормальный" PHP через Apache, однако выполнение команды в терминале, а также в интерактивной консоли PHP дает ожидаемый результат, например:

php > echo exec("echo 'php -f /path/to/file.php foo=1' | at now + 1 minutes", $result);
warning: commands will be executed using /bin/sh
job 1219 at Sun Jun 10 12:43:00 2012

safe_mode выключен, и я не могу понять, почему я не получаю вывод отat с переданным эхо-оператором при выполненииatq или любой другой похвалы сexec() дает мне вывод. Я искал и читалэтот вопросвсе безрезультатно.

Как я могу получитьexec() вернуть вывод изat либо в строку, либо в массив, если используется второй аргумент сexec()?

Ответы на вопрос(3)

Ваш ответ на вопрос