Aller au contenu

Sujets conseillés

Posté

Je vais avoir besoin de lancer plusieurs scripts PHP en parallèle, je voulais savoir si je pouvais faire un script sh pour me simplifier la tâche



Dans le principe, je dois lancer plusieurs scripts PHP qui se présentent de la manière suivante :


script.php 1 20


script.php 21 40


script.php 41 60



etc, pour environ 300 occurrences



Il va falloir que j'utilise screen pour éviter de perdre l'exécution, mais je me demandais :


- dois-je simplement faire un screen et y lancer un script sh qui me les lance tous, ou


- puis-je faire un script sh qui m'ouvre un screen par script à exécuter ? Et, dans ce dernier cas, comment faire ?


Posté

Un script comme ceci si tu as besoin de 2 arguments comme dans ton exemple ? Edite la limite de 300 ou remplace-la par une variable..



#!/bin/bash
low=1
high=20
while [ $low -lt 300 ]
do
screen ton_script.php $low $high &
low=$((low+20))
high=$((high+20))
done

Posté

A mon sens il faut supprimer le '&' en fin de commande, car screen doit être connecté à un terminal


Posté

Pour lancer une flopée de scripts en parallèle, tu peux remplacer la ligne "screen..." par une ligne comme ceci :



nohup ton_script.php $low $high &

Si tu as des messages, ils seront tous répertoriés dans nohup.out ... pour tous tes scripts.


Ca risque d'être donc peu lisible.

Posté

Disons que c'est une manière différente de lancer des process en tâche de fond wink.gif



Perso, je ne suis pas un fanatique du "screen", même si je reconnais qu'il est très puissant. Trop peut-être pour mes besoins.


Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...