Rentrer une commande qui se répète en boucle et en sortir
Résolu/Fermé
Dr snake
-
1 nov. 2016 à 21:41
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 - 4 nov. 2016 à 08:08
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 - 4 nov. 2016 à 08:08
A voir également:
- Rentrer une commande qui se répète en boucle et en sortir
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande en cours de validation fnac - Forum Consommation & Internet
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
4 réponses
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
2 nov. 2016 à 08:28
2 nov. 2016 à 08:28
hello
( while : ; do
htop; sleep 1800;
done ) &
f_on part sur une autre fonction du programme une fois la commande lancée
J'ai réussi a sortir de la boucle mais du coup htop ne se lance plus tout les 30 minutes, voici mon code:
Evidemment je suppose que c'est car j'indique que mon PID est différent de 0 pour sortir.Donc je me retrouve maintenant avec le problème inverse, je sors trop brutalement de ma boucle.Ne faudrait-il pas filtrer avec le nom du process plutot que le PID ? on vérifie que le PID est bien présent et si c'est la cas on passe a autre chose ?
Merci
echo -e "Entrée dans la boucle"
while : ; do
xterm -e htop sleep 1800 &
PID=$!
if [[ $! != 0 ]]; then
f_fonctionsuivante
break
fi
echo "Erreur lors du lancement de htop"
done
echo "On quitte la boucle et on passe a la fonction suivante"
sleep 2;
}
Evidemment je suppose que c'est car j'indique que mon PID est différent de 0 pour sortir.Donc je me retrouve maintenant avec le problème inverse, je sors trop brutalement de ma boucle.Ne faudrait-il pas filtrer avec le nom du process plutot que le PID ? on vérifie que le PID est bien présent et si c'est la cas on passe a autre chose ?
Merci
Merci de ta réponse dubcek, la boucle se lance et j'ai accès a la fonction suivante du script :)
Par contre il reste un soucis, si je veux stopper htop car les paramètres me conviennent tout en restant dans le script ça ne marche pas (meme avec kill -9), il faut que je quitte le script pour que le process s'arrete (j'ai fais la vérif avec ps -ef).Comment je dois gérer ma boucle si je veux la stopper plus tard sans avoir a sortir su script ?
Merci
Par contre il reste un soucis, si je veux stopper htop car les paramètres me conviennent tout en restant dans le script ça ne marche pas (meme avec kill -9), il faut que je quitte le script pour que le process s'arrete (j'ai fais la vérif avec ps -ef).Comment je dois gérer ma boucle si je veux la stopper plus tard sans avoir a sortir su script ?
Merci
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
3 nov. 2016 à 09:09
3 nov. 2016 à 09:09
sauver le PID
et plus tard
echo $$ > /tmp/pid
et plus tard
kill $(cat /tmp/pid)
Génial ça marche, dernière question et j'embete plus, si il y a plusieurs boucle a arréter je stocke tout dans un fichier.pid différent ou je peux faire un fichier global pour l'ensemble des boucles ? ou sinon un truc du genre, pour stopper tout les fichier.pid a la fois, peut-etre ça ?
Merci en tout cas car ça m'a enlevé une bonne épine du pied cette astuce :)
for PID in $( ps -e | pgrep *pid | awk '{print $1;}' ); do kill ${PID} 2>&-; done
Merci en tout cas car ça m'a enlevé une bonne épine du pied cette astuce :)
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
4 nov. 2016 à 08:08
4 nov. 2016 à 08:08
ou
et
echo $$ > /tmp/pid$RANDOM
et
kill $(cat /tmp/pid*); rm -f /tmp/pid*
2 nov. 2016 à 10:25