相关:见此处

我有这个命令:

exec("(wget  -O http://domain/file.zip && mysql -u user -ppassword database -e \"UPDATE \\`table\\` SET \\`status\\` = 'live' WHERE \\`id\\` = '1234'\") & echo \$!");

在上面的命令工作正常,但是PHP等待影片完成才去到下一个下载下载。下面这行,但是,将下载到的背景下,这是我想要从以前的线来实现的。

exec("wget -O http://domain/file.zip &>/dev/null & echo \$!");

我如何去改变上面的第一行到下载发送到后台?

有帮助吗?

解决方案

您必须让您使用与该进程发送到后台,并且您重定向所有输出。所以,你需要添加

> /dev/null 2>&1 & 

在你的命令的末尾。所以,你应该有这样的事情结束了:

exec("(wget  -O http://domain/file.zip && mysql -u user -ppassword database -e \"UPDATE \\`table\\` SET \\`status\\` = 'live' WHERE \\`id\\` = '1234'\") echo \$! > /dev/null 2>&1 &");

[编辑]

为了让事情简单,你也可以移动wget和更新到另一个PHP文件,你会用exec调用。所以,你会最终只

exec("php NewFile.php > /dev/null 2>&1 &"); 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top