Zenity --progress

Bonjour,

je suis en train de faire un petit script afin d’effectuer le plus simplement possible une sauvegarde sur un disque usb et j’ai un petit problème avec la commande zenity --progress: lorsque je clique sur “annuler”, la fenêtre de progression se ferme mais le processus continue de tourner… J’aimerais bien qu’il s’arrête en même temps que j’appuie sur annuler. Voilà le bout de code en question. Du coup la deuxième partie de la condition ne fonctionne pas.

Merci de votre aide!

[code]tar cvzf $DEST_REP/home_sda2.tgz /home | zenity --progress --pulsate --auto-kill --text=“Sauvegarde en cours… Cliquer sur annuler pour arrêter la sauvegarde.”

if [ “$?” -eq “0” ] ; then

zenity --info \
  --text="Sauvegarde USB terminée avec succès !"

else zenity --info
–text=“Sauvegarde USB annulée.”

fi[/code]

En fait, je pensais qu’avec l’option --auto-kill ça marcherait, mais même pas, la sauvegarde continue (mais je retourne à l’invite de commande de la console ($) alors que sans cette option, la console reste “occupée” (je ne sais pas comment on dit).

Pas de soucis chez moi sur ce petit exemple :

Quand zenity se termine, tar doit se prendre un SIGPIPE et terminer aussi.
Vérifie attentivement l’état de tes processus (tar est zombie ? bloqué ? run ?) pour trouver ce qui ne va pas.

Bonjour et merci de la réponse!

5 minutes après avoir appuyé sur “annuler” de zenity voici ce que me donne la commande top:

 5089 lavarenn  20   0  1980  672  304 R   95  0.1   5:25.56 gzip

Ok, en controlant dans une console avec “top” en continu, j’ai testé avec:

tar cvzf mysave.tgz /home/user | zenity --progress --pulsate --auto-kill

et effectivement avec --auto-kill ça marche… Il y a peut-être un problème de droits?? Pourtant, le script est bien lancé avec mon user…

Bon, j’ai refait l’expérience plusieurs fois,
et effectivement il semblerait que tar ne ramasse par le SIGPIPE systématiquement.
Il y a peut-être des moments dans l’éxécution de tar où celui-ci ignore les signaux… à creuser

Sinon pour ton script, il va falloir que tu tues tar explicitement,
donc
1- récupérer son pid
2- attendre qu’il soit bien terminé et au besoin le retuer après un time-out

Je ne pense pas que le problème soit lié à zenity.

Bon, en même temps c’est pas dramatique, si on lance le script de sauvegarde, en général, ce n’est pas pour l’annuler avant la fin…

En fait, je fais ça pour ma “vieille” tante qui vient de se mettre à l’informatique (depuis 6 mois) :slightly_smiling:
Elle fait pas mal de photos (du coup elle vient de passer au numérique) et elle a peur d’en perdre par mégarde vu qu’elle ne maîtrise pas encore vraiment la souris ni le clavier… Elle m’a déjà supprimé son dossier photos sans faire exprès… On lui a conseillé un disque usb pour les sauvegardes mais même si elle se débrouille maintenant plutôt bien, la manipulation de dossiers c’est pas encore son fort…

Donc mon objectif, c’est de lui faire une belle icône sur le bureau sur laquelle elle va cliquer à chaque fois qu’elle vide sa carte mémoire. (après avoir branché son disque usb, bien sur…)

Voilà, vous savez tout, en l’occurence mon script devrait déjà faire l’affaire en l’état et finalement, c’est peut-être même pas mal comme ça, car si elle clique sur “annuler” par mégarde, et ben ça continue quand même!!! :smt003 :smt003
:smt005 :smt005