process di background php usando la function exec

Ho cercato molto per trovare la risposta esatta ma non ne ho trovato.

molte persone hanno detto che dovremmo & alla fine del command non aspettare la risposta.
per esempio per eseguire bg.php in background, questo è stato raccomandato:

exec("/usr/bin/php bg.php &"); 

ma non funziona per me. e lo script principale attende l'esecuzione completa di bg.php .

Ho anche letto da qualche parte per scrivere l' output di bg.php in un logfile, ma il mio script in background non produce alcun output. Fa qualche process e poi scrive qualcosa nel database.

Voglio solo che il mio script esegua bg.php e non aspetti che finisca.

per favore aiutami includendo il codice corretto.

Devi redirect i programmi in output anche da qualche parte, di solito / dev / null

 exec($cmd . " > /dev/null &"); 

Hai preso in considerazione l'utilizzo dello schermo? È ansible avviare una session di schermo che viene eseguita in un process separato.

 screen -d -m -S my_bg_session /usr/bin/php bg.php 

Quindi puoi collegarti in seguito se è ancora in esecuzione:

 screen -r my_bg_session