Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

survietamine a écrit :

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 hmm

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 ... tongue


«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,

L_d_v_c@ a écrit :

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" wink


«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 tongue


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne