shell_exec не работает в фоновом режиме, любое другое решение? - PullRequest
5 голосов
/ 28 августа 2011

Я использую php в apache на CentOS. Мне нужно обслуживать пользователей, чтобы они могли удалять большие файлы одним кликом. пытаясь использовать shell_exec. но это не работает в фоновом режиме. он запускается и заставляет пользователя ждать.

моя команда:

$ D_command = "rm -rf videos / '$ Mdelete'";

shell_exec ($ D_command);

спасибо!

Ответы [ 5 ]

4 голосов
/ 28 августа 2011

задница & в конце команды.

$D_command="nohup rm -rf videos/'$Mdelete' > /log/deletedfile.log 2>&1 &";
3 голосов
/ 28 августа 2011
$PID = shell_exec("nohup $Command 2> /dev/null & echo $!");

http://php.net/manual/en/function.shell-exec.php

0 голосов
/ 07 сентября 2012

Я знаю, что это довольно старый вопрос, но у меня была та же проблема, и это было единственное рабочее решение после попытки и неудачи с exec, shell_exec, process_open:

$process = popen("nohup $D_command > /dev/null 2> /dev/null & echo $!", 'r');
$pid = fread($process, 32);
0 голосов
/ 15 мая 2012

Попробуйте это:

popen($D_command, 'r')
0 голосов
/ 28 августа 2011

Попробуйте запустить

rm -rf videos/'$Mdelete' &

с использованием exec. Амперсанд указывает на бегство на задний план

...