Donc, fondamentalement, je veux exécuter un script qui fera autour 15k fichiers pdf, et il doit être fait à partir de php shell en raison max_timeout ...Pourquoi ce processus ne s'exécute pas en arrière-plan?
serveur: Ubuntu 10.04.1 PHP: 5.3.2-1ubuntu4 0,5
Alors ce que je actuellement essayé:
function run_in_background($Command){
$ps = shell_exec("nohup php5 $Command > /dev/null 2> /dev/null & echo $!");
return $ps;
}
$ok = run_in_background('/var/www/custom/web/public/make_pdf.php');
if(!empty($ok))
var_dump($ok);
else
exit('Fail');
et après que je vais à la console ssh et faire ps $ps
et en réponse je reçois des en-têtes seulement pas d'info - signifie sorcière processus ne fonctionne pas ...
Comment puis-je faire cela pour que cela fonctionne?
essayer sans 'echo $' ou se terminant par '' &!. Si vous voulez exécuter 2 process 'inline', utilisez '&&' au lieu d'un simple '&'. exemple: 'nohup php5 $ Commande>/dev/null 2>/dev/null && echo $! & ' – jotapdiez
dans ce cas $ ok est vide et le script me renvoie Echec. – arma
@arma Comment avez-vous su si le processus s'est terminé avec une erreur? essayez de placer la sortie dans un fichier. – jotapdiez