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 ?![]()
Partager