Bonjour


J'ai un bout de code qui peut exécuter jusqu'a 3 fonctions, tout dépend du résultat que donne chacune d'elle.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
fonction_1(){
           echo -e "On appelle la fonction_2"
fonction_2
echo -e "on continue le code de la fonction 1 une fois que la fonction 2 a été lancé"
...code a exécuter tant que le fichier test.txt est vide...
until test -s /var/www/test.txt; do 
sleep 60;
done

Dans la fonction 2 j'ai ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
xterm -hold -bg '#codecouleur' -fg '#codecouleur' -e watch -n $xseconde ps -ef > output.txt  &> /dev/null &
sleep 5;
if grep -q "apache2" "output.txt" ; then 
   echo -e "\t\e[1;32m [+] apache est déja lancé"
else
    echo -e "\e[1;31m [!] apache n'est pas lancé, lancement en court\e[0m"
fonction_3

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
fonction_3
echo -e "Lancement et configuration de apache"
xterm commande 1
xterm commande 2
etc...

La fonction 2 doit s'exécuter toute les x secondes et appeler la fonction 3 au besoin.

J'ai 2 problème, le premier c'est que si la fonction 3 se lance je dois pouvoir revenir a la fonction 2 qui effectue le test toute les x secondes pour re tester la variable dans le output.txt.
Le second c'est nettoyer les xterm de la fonction 3 avant de revenir dans la fonction 2 qui re-teste la variable dans le output.txt

Le tout sans interrompre ou géner la fonction 1 qui test le fichier test.txt en boucle (c'est d'ailleurs pour ça que j'ai penser a xterm)


Ce n'est pas dans un cadre professionnel mais plus pour m'entrainer a gérer plusieurs process avec bash ^^
Comment faire ça proprement ?