我正在调用exec以使用php exec()和wget在backgroud中运行脚本。但是每次我称呼它时,都会在服务器中创建一个带有url参数的文件。我试图禁用输出,也尝试将其存储到特定文件。都失败了。
这是我的代码
function execInBackground($cmd)
{
$cmd = escapeshellcmd($cmd);
exec($cmd . " > /dev/null &");
}
我这样称呼
execInBackground('wget -q http://example.com/d/do-processing?process=501&res=201');
所以现在它将创建一个名为
的文件do-processing?process = 501&res = 201
在我的服务器上。你们能不能提一下我做这个时想念的东西。
我想在后台调用该网址而不保存任何输出。在最坏的情况下,我需要将每个调用的输出存储到特定文件中,而不是创建多个文件。
exec($cmd . " > process.out 2> process.err < /dev/null &");
我尝试过上面的代码,但是没有用。
答案 0 :(得分:0)
解决方案是使用wgets的-o
或--output-file
参数,如下所示:
exec('wget -q -o /dev/null http://example.com/d/do-processing?process=501&res=201 &');
然后将不创建任何输出文件。