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

Php shell_exec不在后台运行,还有其他解决方案吗?,php,centos,shellexecute,Php,Centos,Shellexecute,我在CentOS上的apache中使用php。 我需要为用户服务,他们可以通过点击删除大文件。 正在尝试使用shell_exec。 但它不是在后台运行的。 它运行并让用户等待 我的命令: $D_command=“rm-rf视频/”$Mdelete' shell_exec($D_命令) 谢谢 ass&在命令末尾 $D_command="nohup rm -rf videos/'$Mdelete' > /log/deletedfile.log 2>&1 &"; 试着跑步

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

我的命令:

$D_command=“rm-rf视频/”$Mdelete'

shell_exec($D_命令)


谢谢

ass&在命令末尾

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

rm -rf videos/'$Mdelete' &
使用
exec
。符号指示运行到后台

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

popen($D_command, 'r')

我知道这是一个很老的问题,但我也遇到了同样的问题,这是在尝试
exec
shell\u exec
process\u open
失败后唯一可行的解决方案:

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

如果需要,可以在开头添加nohup。“nohup rm-rf videos/'$Mdelete'&”您必须添加nohup,否则该进程将生成apache而不是线程。必须在命令开头添加nohup。这告诉php解释器在后台运行该进程。它不返回命令的输出,而是返回进程id@user692601您是否尝试过使用
exec
shell\u exec