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.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
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.
Please or to participate in this conversation.