comando php exec (o similar) para no esperar el resultado

Tengo un comando que quiero ejecutar, pero no quiero que PHP se siente y espere el resultado.

 

¿Es posible que PHP no espere el resultado? Es decir, simplemente dé un puntapié y avance al siguiente comando.

No puedo encontrar nada, y no estoy seguro de que sea posible. Lo mejor que pude encontrar fue que alguien que realizara un trabajo de CRON comenzara en un minuto.

Siempre es bueno verificar la documentación :

Para ejecutar un comando, haga que no cuelgue su script php mientras se ejecuta, el progtwig que ejecuta no debe devolver a php. Para hacer esto, redirija tanto stdout como stderr a / dev / null, luego haga un fondo.

> /dev/null 2>&1 &

Para ejecutar un comando y hacer que se genere como otro proceso que no depende del hilo de apache para seguir ejecutándose (no va a morir si alguien cancela la página) ejecuta esto:

exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');

Puede ejecutar el comando en segundo plano agregando un & al final del mismo como:

 exec('run_baby_run &'); 

Pero hacer esto solo colgará tu script porque:

Si un progtwig se inicia con la función exec, para que continúe ejecutándose en segundo plano, la salida del progtwig debe redirigirse a un archivo u otra secuencia de salida. Si no lo hace, PHP se bloqueará hasta que finalice la ejecución del progtwig.

De modo que puede redirigir la salida estándar del comando a un archivo, si desea verlo más tarde o a /dev/null si desea descartarlo como sigue:

 exec('run_baby_run > /dev/null &'); 

Ok, aquí está la última respuesta definitiva correcta ganadora del premio 😉

Esto usa wget para notificar una URL de algo sin esperar.

 $command = 'wget -qO- http://test.com/data=data'; exec('nohup ' . $command . ' >> /dev/null 2>&1 & echo $!', $pid); 

Esto usa ls para actualizar un registro sin esperar.

 $command = 'ls -la > content.log'; exec('nohup ' . $command . ' >> /dev/null 2>&1 & echo $!', $pid); 

“exec nohup setsid your_command”

el nohup permite que su_command continúe aunque el proceso que se inició pueda finalizar primero. Si lo hace, la señal de SIGNUP se enviará a your_command haciendo que finalice (a menos que capte esa señal y la ignore).