shell_exec不在后台运行,还有其他任何解决方案吗?

时间:2011-08-28 15:15:49

标签: php centos shellexecute

我在CentOS上使用apache中的php。 我需要为用户提供服务,他们可以通过点击删除大文件。 试图使用shell_exec。 但它不在后台运行。 它运行并让用户等待。

我的命令:

  

$ D_command =“rm -rf videos /'$ Mdelete'”;

     

了shell_exec($ D_command);

谢谢!

5 个答案:

答案 0 :(得分:4)

ass&在命令的最后。

$D_command="nohup rm -rf videos/'$Mdelete' > /log/deletedfile.log 2>&1 &";

答案 1 :(得分:3)

$PID = shell_exec("nohup $Command 2> /dev/null & echo $!");

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

答案 2 :(得分:0)

尝试运行

rm -rf videos/'$Mdelete' &

使用exec。 &符号表示运行到后台

答案 3 :(得分:0)

试试这个:

popen($D_command, 'r')

答案 4 :(得分:0)

我知道这是一个很老的问题,但我遇到了同样的问题,这是尝试使用execshell_execprocess_open失败后唯一可行的解​​决方案:< / p>

$process = popen("nohup $D_command > /dev/null 2> /dev/null & echo $!", 'r');
$pid = fread($process, 32);