# forcer quitter un logiciel en unix



## romac (24 Avril 2007)

J'aimerais a l'aide d'une simple commande unix quitter un logiciel tournant sur mac

ex : je l'ouvre  avec la commande "open nomdulogiciel"
  je le quitte (je prefererai le forcer quitter avec ?????

merci


----------



## elKBron (24 Avril 2007)

man kill


----------



## romac (24 Avril 2007)

elKBron a dit:


> man kill



il fo en plus le numero du logiciel et je le trouve pas 
comment faire quitter le logiciel "XX"
"kill _et ensuite_ ?


----------



## elKBron (24 Avril 2007)

man top

tu regardes le numero du process

kill le numero

_
mais bon, c est barbare... j aime bien etre un barbare_


----------



## p4bl0 (24 Avril 2007)

elKBron a dit:


> man top
> 
> tu regardes le numero du process
> 
> ...


kill marche aussi avec le nom de l'executable (iTunes pour iTunes, firefox-bin pour firefox...)

Mais le must dans la bourinerie , c'est *kill -9 <num&#233;ro de processus>* le num&#233;ro &#233;tant visible avec top ou dans le moniteur d'acitivt&#233; (num&#233;ro de l'op&#233;ration)


----------



## romac (24 Avril 2007)

p4bl0 a dit:


> kill marche aussi avec le nom de l'executable (iTunes pour iTunes, firefox-bin pour firefox...)
> 
> Mais le must dans la bourinerie , c'est *kill -9 <numéro de processus>* le numéro étant visible avec top ou dans le moniteur d'acitivté (numéro de l'opération)



oui mais c'est pour automatiser une tachje , donc je ne veux qu'il se quitte tout seul sans que je tappe son numero de process , si cela pouvait se faire en fonction du nom de l'application ...


----------



## elKBron (24 Avril 2007)

ben c est exactement ce que p4bl0 te dit


----------



## Dramis (24 Avril 2007)

man ps
man grep
man kill

Après ça tu sauras comment faire.


----------



## p4bl0 (24 Avril 2007)

Dramis a dit:


> man ps
> man grep
> man kill
> 
> Après ça tu sauras comment faire.


  

Ouais m'enfin demander &#224; un quelqu'un qui apparemment ne s'y connait aps trop de parser le r&#233;sultat de ps avec grep pour chopper le numero de proc. de l'appli dont on connais le nom pour la passer en argument &#224; kill, c'est pas un peu exag&#233;r&#233; ? :rateau:


----------



## Dramis (24 Avril 2007)

p4bl0 a dit:


> c'est pas un peu exagéré ?



Il sait déjà qu'il y a un terminal, c'est un bon début.


----------



## ntx (24 Avril 2007)

p4bl0 a dit:


> Ouais m'enfin demander à un quelqu'un qui apparemment ne s'y connait aps trop de parser le résultat de ps avec grep pour chopper le numero de proc. de l'appli dont on connais le nom pour la passer en argument à kill, c'est pas un peu exagéré ? :rateau:


Il veut le faire en "Unix" : c'est la méthode ... pas très "friendly" mais Unix  :rateau:


----------



## p4bl0 (24 Avril 2007)

ntx a dit:


> Il veut le faire en "Unix" : c'est la méthode ... pas très "friendly" mais Unix  :rateau:


_&#171; UNIX is user-friendly, it is just very picky about who its friends are &#187;_


----------



## bompi (25 Avril 2007)

Une petite précision : _kill_ ne s'emploie qu'avec le _pid_ (process ID) de l'application, pas son nom. Vous confondez avec _killall_. Lequel est sensible à la casse.

Si besoin est, je peux fournir un petit script qui donne le _pid_ d'une application UN*X.
Dommage que _pgrep_ ne soit pas porté sur Mac OS X.


----------



## p4bl0 (25 Avril 2007)

bompi a dit:


> Une petite précision : _kill_ ne s'emploie qu'avec le _pid_ (process ID) de l'application, pas son nom. Vous confondez avec _killall_. Lequel est sensible à la casse.
> 
> Si besoin est, je peux fournir un petit script qui donne le _pid_ d'une application UN*X.
> Dommage que _pgrep_ ne soit pas porté sur Mac OS X.


Ha oui j'ai confondu avec killall, d&#233;sol&#233; ! :rose:


----------



## bompi (25 Avril 2007)

Ce n'est pas bien grave


----------



## ericb2 (25 Avril 2007)

Puisque personne ne propose quelque chose, j'ai une m&#233;thode, probablement pas la meilleure, mais elle fonctionne correctement (juste quelques tests) :

 On imagine que la variable  A_TERMINER contient le nom de l'application &#224; terminer

 exemple : 

 export A_TERMINER=xterm

 Pour killer (tous les) xterm, il suffit de faire :

 kill `ps ax  | grep -v grep | grep $A_TERMINER | cut -d" " -f1`

 Ce qui peut se mettre dans un shell script ( bash )

 ------ couper apr&#232;s --------------
 #!/bin/bash

 echo -e "Nom du programme &#224; terminer \n"

 read NOM

 PID_NOM=`ps ax  | grep -v grep | grep $NOM | cut -d" " -f1`

 kill $PID_NOM  2>/dev/null

 if !( test -z $PID_NOM )
   then echo -e " $NOM &#224; &#233;t&#233; supprim&#233;\n"
 else
   echo -e "Pas de $NOM trouv&#233;\n"
 fi

 ----- fin ----------------------------


 Note : sous Linux, la commande pidof est tr&#232;s simple &#224; utiliser.

 kill `/sbin/pidof $A_TERMINER`

 fait la m&#234;me chose

Mes 2cts

-- 
ericb


----------



## EricKvD (26 Avril 2007)

Je n'ai pas mon Mac sous la main pour vérifier, mais en linux, on a deux commandes qui sont pgrep et pkill qui permettent de rechercher / tuer facilement des processus.



> ex : je l'ouvre  avec la commande "open nomdulogiciel"


Tu peux faire: 

```
pgrep nomdulogiciel
```
Cela t'affichera une liste de chiffres si le logiciel est lancé plusieurs fois.


```
pkill nomdulogiciel
```
devrait envoyer un signal de fin de travail aux processus.

Exemple sous linux:
	
	



```
[moi@ordi ~]$ pgrep evolution
1526
1530
1536
1550
[moi@ordi ~]$ pkill evolution
[moi@ordi ~]$ pgrep evolution
[moi@ordi ~]$
```
On voit que la première commande trouve des processus "evolution", la seconde les "tue", la troisième ne trouve plus de processus "evolution".


----------



## Dramis (26 Avril 2007)

Il y a des  sources pour pkill et pgrep, &#231;a marche pour darwin(osx).  Il y a peut-&#234;tre des adaptations &#224; faire.


----------

