Je souhaite exécuter plusieurs commandes shell avec la commande exec de php. Les commandes doivent être faites séquentiellement et je veux les démarrer avec nohup afin qu'il puisse s'exécuter en arrière-plan et mon script php ne doit pas attendre pour qu'il se termine. Voici mon script:exécuter plusieurs commandes shell avec php nohup
$command1="nohup convert -trim +repage pic1.png pic2.png; convert pic2.png -thumbnail 500x10000 pic3.png; convert pic2.png -resize 115x1000 -gravity Center -crop 115x196+0+0 +repage pic4.png; rm pic1.png; rm pic2.png > /dev/null 2> /dev/null & echo $";
$output = exec($command1 . ' 2>&1', $output, $return);
Comme vous pouvez le voir, il doit être séquentiellement parce que je veux modifier une image qui a été coupé avant. La commande en elle-même et la partie séquentielle fonctionnent bien, mais le nohup ne fonctionne pas sur l'ensemble $ command1. Je ne suis pas sûr si cela ne fait rien ou fonctionne simplement sur la dernière commande (rm pic2.png).
Toute aide est grandement appréciée. Merci
'nohup' devrait fonctionner correctement avec les points-virgules : Voir http://people.ucalgary.ca/~wellings/tipspit/nohup.html pouvez-vous créer un scénario de test avec différentes commandes (comme la création de cinq fichiers subséquents)? Aussi, je pense que si l'une des commandes renvoie une erreur, les autres commandes ne seront pas exécutées (Ne sais pas avec certitude cependant, un expert Linux devra confirmer) –
Je pensais que ça devrait marcher aussi (ça fonctionnait avec une commande sans les points-virgules), mais ce n'est pas le cas ... Donc mon script php attend que la commande se termine au lieu de continuer comme avant ... Btw, je pense que vous avez raison de suivre les commandes ne sont pas exécutées en cas d'erreur. – Michael27