Correndo a partir do PHP não dá saída
Eu tenho lutado comexec()
, tentando capturar a saída dele quando eu adiciono uma tarefa usando oat
Comando do sistema Unix. Meu problema é que ele não está dando saída quando executado a partir do meu script, no entanto, executá-lo a partir do terminale O PHP no modo interativo imprime algumas linhas.
O comando que quero executar é este:
echo exec("echo 'php -f /path/to/file.php foo=1' | at now + 1 minutes", $result);
var_dump()
dástring(0) ""
eprint_r()
cospeArray ()
. Eu tentei usarshell_exec()
, que produzNULL
, no entanto, as seguintes saídashi
quando executado em um contexto de página da web:
echo exec("echo 'hi'");
Isso também gera material:
echo exec("atq");
No entanto, assim que eu usoat
nada é produzido. Como posso obter a saída de:
exec("echo 'php -f /path/to/file.php foo=1' | at now + 1 minutes", $result);
Porque atualmente ele não produz nada quando executado como "normal" pelo PHP através do Apache, entretanto rodar o comando no terminal bem como no console interativo do PHP me dá o resultado esperado de algo como:
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
está desligado, e não posso descobrir por que não recebo nenhuma saídaat
com uma instrução de eco canalizada, ao executaratq
ou qualquer outro elogio comexec()
me dá saída. Eu procurei e liessa questão, Tudo em vão.
Como posso obterexec()
para devolver a saída deat
para uma seqüência de caracteres ou uma matriz se estiver usando um segundo argumento comexec()
?