Uruchomienie z PHP nie daje żadnego wyjścia
Zmagam się zexec()
, próbując przechwycić wynik, gdy dodam zadanie za pomocąat
Uniksowe polecenie systemowe. Mój problem polega na tym, że nie uruchamia się z mojego skryptu, ale uruchamia go z terminalai PHP w trybie interaktywnym drukuje kilka linii.
Polecenie, które chcę wykonać, jest następujące:
echo exec("echo 'php -f /path/to/file.php foo=1' | at now + 1 minutes", $result);
var_dump()
dajestring(0) ""
, iprint_r()
wypluwaArray ()
. Próbowałem użyćshell_exec()
, które wyjściaNULL
, jednak następujące wyjściahi
po uruchomieniu w kontekście strony internetowej:
echo exec("echo 'hi'");
To również wyświetla rzeczy:
echo exec("atq");
Jednak tak szybko, jak używamat
, nic nie jest wyprowadzane. Jak mogę uzyskać dane wyjściowe:
exec("echo 'php -f /path/to/file.php foo=1' | at now + 1 minutes", $result);
Ponieważ obecnie nie wypuszcza niczego, gdy jest uruchamiany jako „normalny” przez PHP za pośrednictwem Apache, jednak uruchomienie polecenia w terminalu, a także w interaktywnej konsoli PHP daje mi oczekiwany wynik:
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
jest wyłączony i nie mogę zrozumieć, dlaczego nie otrzymuję żadnych wynikówat
z wykonaną potokiem instrukcją echaatq
lub inne polecająexec()
daje mi wyjście. Szukałem i czytałemto pytanie, wszystko bezskutecznie.
Jak mogę zdobyćexec()
aby powrócić do wyjściaat
do ciągu lub tablicy, jeśli używa się drugiego argumentu za pomocąexec()
?