[Shell] Stopper processus > Script

kaze -  
 kaze -
Bonjour, je cherche depuis des jours mais je n'arrive pas à trouver de réponses à mon probleme ...
En fait, je voudrais savoir comment arreter un processus associer à une zenity progressbar en shell ...
Par exemple :

wget www.supersite.com/chemin/fichier/.extension | zenity --progress .... . . . . . .

j'ai bien essayer " killall wget " mais si un autre programme ou une autre instance de wget est en execution elle s'arrete aussi, ainsi mon script actuelle donne :

#!/bin/bash
#

fermer_progress () {

if [ "$?" != 0 ] ; then
exit 0;
fi

}

dlfile='zenity --entry --title="shelldl" --text="URL ?"'
wget $dlfile | zenity --progress --title="Shelldl" --text="En train de dl le fichier ..." --width="250" --auto-close
fermer_progress

exit 0;

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Il suffit de lancer le processus en arrière-plan (&) et de tuer le PID associé à ce job.
    Normalement le fait d'exécuter un processus en arrière-plan, celui-ci te renvoie un numéro de PID associé ainsi qu'un numéro de "jobs" associé, donc où tu kill le PID ou tu kill le numéro de jobs (pratique si plusieurs jobs).

    La commande "echo $!" te renvoie le PID du dernier processus lancé en arrière-plan.

    (wget www.supersite.com/chemin/fichier/.extension | zenity --progress .... . . . . . . )&
    kill -9 %1
    0
  2. kaze
     
    ça a l'air de marcher !
    pardon pour ma reponse tardive et merci, j'aurais pas trouver seul ;)
    A bientôt !
    0