Comment stopper une des commandes d'un script

Résolu
Clement44 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,

actuellement je cherche à développer un script utilisant la fonction "free" qui permet d'obtenir des informations sur la RAM.
Or, à ma connaissance, cette fonction possède une option pour itérer les observations toute les x secondes, mais rien pour l'arrêter?
Je ne peux pas faire Ctrj+C car sinon la fin du script ne s'effectue pas.

Est ce que quelqu'un aurait une idée?

Merci d'avance
A voir également:

5 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
De rien ;-))

Tiens une petite variante qui peut être plus sympa dû au fait qu'elle affiche le résultat de la commande "free" (au lieu de la cacher du fait de sa mise en arrière-plan) pendant x secondes (man watch pour plus de détails) :
	i=0
	while [ "$i" -lt 12 ]
	do free > fich.tmp
	sleep 1
	i=$(expr $i + 1)
	if [ "$i" -eq 11 ]
	then
	pkill watch
	fi
	done&
	watch -n 1 -d -t 'cat fich.tmp' && rm -f fich.tmp
;-))
1
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Lance ta commande en arrière-plan :
free -s 3&
ton script se poursuivra alors. Pour stopper le processus en arrière-plan depuis ton script :
kill -9 $!
;-))
0
Clement44 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour ta réponse,

comment fais tu pour faire en sorte qu'il ne prenne le kill qu'au bout des x secondes?
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Tu fais un :
sleep n
ou "n" est un entier (man sleep) tout simplement ;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Clement44 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Vraiment merci beaucoup,

ton aide m'a été très précieuse .
0