#1 Le 13/09/2010, à 00:28
- lynn
Arrêter un processus "sleep" avant son issue ...
Bonjour,
Tout est dans le titre mais le processus sleep que je voudrais arrêter est généré par un script que je poste ici et je détaille après :
#! /bin/bash
[ -e "/tmp/animes" ]
> "/tmp/animes"
TEMPS=m
DUREE=30
inotifywait -m /media | while read ligne
do
if true [ "$(grep "ls /media/animes" <<< $ligne)" ]; then
sleep $DUREE$TEMPS
gvfs-mount -u /media/animes
fi
done
exit 0
Ce script est lancé quand je démarre le pc et quand je monte la partition ( par l'intermédiaire du menu "raccourcis" de Gnome ) nommée "animes", celle-ci va se démonter toute seule au bout de trente minutes. Jusque là, tout va bien. Par contre, si je démonte cette partition manuellement, je vois que le processus "sleep" est toujours actif.
Y' a t'il un moyen de "remettre le compteur à zéro" quand la partition est démontée manuellement ?
Merci pour vos conseils éclairés.
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#2 Le 13/09/2010, à 10:28
- survietamine
Re : Arrêter un processus "sleep" avant son issue ...
bonjour,
je ne vois pas l'intérêt de mettre le compte à rebours à zéro.
Si ton script ne "dort" plus, il va exécuter le `gvfs-mount -u` inutile puisque tu as déjà démonté ta partition.
Donc, à mon sens, tu pourrais vérifier si la partition est montée avant.
Ou sinon, quand tu démontes à la main, tu "tues" ton sleep :
pkill sleep
ou ton script :
pkill -f nom_de_ton_script
Ðɸ Ƴơц ℕεєđ Şø₥€ √іêŤąɱίɳƸʂ ?
Hors ligne
#3 Le 13/09/2010, à 16:23
- lynn
Re : Arrêter un processus "sleep" avant son issue ...
Bonjour et merci de ta réponse
je ne vois pas l'intérêt de mettre le compte à rebours à zéro.
Actuellement, si je démonte manuellement ma partition, "sleep" est toujours actif et la commande "gvs-mount -u" va se lancer dans le vide puisque j'ai déjà démonté la partition. Ce n'est pas forcement très gênant sauf dans ce cas ;
Supposons que :
1 - j' accède à ma partition; Le "compte à rebours est lancé".
2 - Au bout de quinze minutes, je démonte ma partition manuellement. "sleep" est toujours actif...
3 - Cinq minutes après l'avoir démonté, je remonte cette partition et dix minutes après elle se démonte
C'est pourquoi je souhaiterais que la commande "sleep" associée au script soit arrêtée, histoire de réattribuer trente minutes de délai si jamais on remonte cette partition entre temps.
Et ça, je ne sais pas trop comment placer les commandes nécessaires dans le script ... voila voila ...
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#4 Le 30/07/2011, à 21:03
- Compte supprimé
Re : Arrêter un processus "sleep" avant son issue ...
Bonjour lynn,
Je ne connais pas trop bash mais ce n'est pas la commande sleep qui gêne tellement dans ton script, mais plutôt gvfs-mount -u /media/animes.
As-tu résolu ton script ? sinon je propose :
temps=30 mn
i=temps
tant que i>0 ET partition est montée
sleep 1mn
i--
fin tant que
si i=0 ET partition est montée //teste si l'utilisateur n'a pas déjà démonté la partition
alors démonter la partition
fin si
afficher la partition est désormais démontée
Cordialement,
Ludovic
Dernière modification par Compte supprimé (Le 31/07/2011, à 14:02)
#5 Le 31/07/2011, à 13:24
- lynn
Re : Arrêter un processus "sleep" avant son issue ...
Bonjour,
Bonjour lynn,
Je ne connais pas trop bash mais ce n'est pas la commande sleep qui gêne tellement dans ton script, mais plutôt gvfs-mount -u /media/animes.
En quoi gvfs-mount pose un problème ? Ca permet juste de démonter en espace utilisateur...
Comme je l'ai mis plus bas, c'est juste la minuterie qui doit se terminer en même temps que je démonte manuellement mon disque dur. Le truc, c'est que "sleep" est associé au script principal et ce process continue dans le vide alors que mon disque n'est plus monté.... ce qui va poser un problème si je remonte mon disque dur entre temps.
Ca fonctionne si on ne touche à rien et que la procédure va jusqu'à son terme. Alors là, le process "sleep" disparaît et tout va bien.
En gros, ce que je souhaite obtenir :
Si je démonte mon disque manuellement, que le process "sleep" qui à été lancé suite au montage de ce disque, disparaisse en même temps; Plus de disque, plus de "sleep"
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#6 Le 02/08/2011, à 18:19
- Compte supprimé
Re : Arrêter un processus "sleep" avant son issue ...
ludovic@E6600:~$ sleep 20000&
[2] 6377
ludovic@E6600:~$ sleep 30000&
[3] 6378
ludovic@E6600:~$ temps=20000
ludovic@E6600:~$ com='sleep '$temps
ludovic@E6600:~$ ps -ef | grep "$com"| grep -v grep | awk '{print $2}'
6377
ludovic@E6600:~$ ps aux | grep sleep
ludovic 6377 0.0 0.0 7840 584 pts/1 S 19:10 0:00 sleep 20000
ludovic 6378 0.0 0.0 7840 584 pts/1 S 19:10 0:00 sleep 30000
ludovic 6386 0.0 0.0 10152 1072 pts/1 S+ 19:12 0:00 grep --color=auto sleep
Je ne sais pas si ça t'avance un peu ...
#7 Le 02/08/2011, à 18:37
- lynn
Re : Arrêter un processus "sleep" avant son issue ...
Merci à toi L_d_v_c@
Ca peut me servir; Il me faut juste un peu de temps pour m'y remettre
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne