[Bash] Attendre qu'un processus soit complété (et non fini) avant d'exécuter les instructions suivantes
Bonjour.
Ma machine tourne sur Ubuntu 18.04.3 et la version de Bash est 4.4.20.
L'idée principale est la suivante:
###Lancer tor & polipo
./lancementTorPolipo.sh start 1 5
#Attendre que les circuits tor soit complété par "Bootstrap 100% done" ce qui met un peu de temps
#Ensuite, et seulement ensuite
./autreScriptQuiDépendDesCircuitsDeTor.sh
Voici un extrait du fichier ./lancementTorPolipo.sh
Code:
1 2 3 4 5 6 7 8 9
| mode=$1
minimum=$2
maximum=$3
if [ $mode = "start" ]; then
for i in `seq $minimum $maximum`;
do
tor -f /etc/tor/torrc$i &
done
fi |
Comme vous le voyez les instances de Tor sont lancés via la commande tor -f /etc/tor/torrc. C'est très différent que de le lancer comme un service/deamon comme vous le savez je pense, et je vais aborder le point ensuite.
Donc, à l'heure actuelle je ne sais pas comment automatiser dans un script bash le fait d'attendre que les circuits soient tous complets: Bootstrapped 100%: Done.
Je précise d'avance que la commande wait comme on me l'a proposé ailleurs n'est absolument pas ce que j’attends. Cette dernière attends que le processus (PID) disparaisse. Moi j'attends au contraire qu'il soit toujours présent.
Je ne souhaite pas envisager la commande sleep non plus. L'attente dépendant du nombre de circuits créés et puis d'autres facteurs que je ne maîtrise pas.
Je reviens maintenant sur les services/deamons. J'ai cherché ce qu'était les status pour les services, notamment avec les commandes de systemctl. J'aimerais savoir si pour vous c'est une piste envisageable pour répondre à mon problème que de lancer ces instances de torrc comme des services ou si on peut se passer de cela ? Autrement dit y a-t-il d'autres moyens? Déjà qu'est ce qui serait le plus à faire ?
Réussite de la création des logs
@disedorgue Je ne sais pas comment vous obtenez le fichier le log pour votre part. De mon côté j'essaie de paramétrer dans les différents fichier torrc le dossier et fichier de log comme indiqué dans la documentation. Malheureusement j'ai beau faire comme ils disent ça ne veut pas pour l'instant.
MAJ:
Maintenant c'est réussi. Je confirme que la commande proposé ne rend pas la main si elle ne trouve pas le motif en question. Je me penche sur les signals voir si c'est envisageable.