Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

jestins's avatar

php exec with WGET creating files

I'm calling exec to run scripts in backgroud using php exec() and wget. But everytime I call this it's creating a file with url parameters in my server. I tried to disable output and tried to store it to a specific file also. Both failed.

here is my code

function execInBackground($cmd)
{
    $cmd = escapeshellcmd($cmd);
    exec($cmd . " > /dev/null &");
}

And I'm calling it like below

execInBackground('wget -q http://example.com/d/do-processing?process=501&res=201');

So now it will create a file named

do-processing?process=501&res=201

in my server. Can you guys please mention is there anything I missed while doing this.

I want to call that url in background without saving any output. In worst case I need to store the output of each call to a specific file instead of creating multiple files.

exec($cmd . " > process.out 2> process.err < /dev/null &");

I tried like above code and didn't worked.

0 likes
1 reply
lostdreamer_nl's avatar

Try this version:

$this->execInBackground('wget -O/dev/null -q http://example.com/d/do-processing?process=501&res=201');

Setting the output file to /dev/null and using the quiet option.

That should work.

Please or to participate in this conversation.