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