[Linux-bruxelles] killall et kill

Yannick Warnier yannick at bxlug.be
Mar 31 Déc 11:50:54 CET 2002


Le mar 31/12/2002 à 02:29, Serge Smeesters a écrit :
> Salut,
> Dans kedit (sous kde, debian), lorsque je fais [Alt Gr]+[3,",#] (clavier 
> belge avec point) pour obtenir le caractère #, le programme (kedit) se 
> gèle et comme je ne sais pas comment tué le programme, je dois quiter 
> kde (bouton Logout) et relancer (commande "startx") :-(

Pour tuer le programme, fais comme ceci:
- lance un terminal (si tout l'interface graphique est freezé, tu peux
toujours repasser entièrement sur une console avec CTRL+ALT+F1, tu
retourneras à l'interface graphique ensuite avec CTRL+ALT+F7)
- logge-toi si c'est nécessaire
- lance la commande "killall kedit" et regarde ce que ca donne sur kedit
2 cas de figure:
  - kedit est terminé (ben voilà, c'est gagné)
  - kedit est toujours là:
    Dans ce cas refais la même opération avec l'option -9 (kill -9
kedit). C'est simplement plus violent comme commande. Ca devrait
fonctionner.


Petite explication kill et killall:
===================================
kill et killall sont des commandes qui effectuent directement un appel
système qui, en fait, ne tue pas le processus indiqué, comme leurs noms
pourraient le laisser croire, mais envoie un signal au processus
mentionné. 
Le signal est, par défaut, un SIGTERM. Ce qui signifie que, si le
programme a été bien conçu, il devrait s'arrêter proprement, en
sauvegardant même éventuellement les données actuelles avant et tout et
tout. 
Si l'option "-9" est utilisée, c'est le signal SIGKILL qui est envoyé.
Là, pas question de sauvegarder quoi que ce soit, le système (Linux ici)
tue directement, lui-même, me processus mentionné. PAN!

Différence entre kill et killall:
---------------------------------
killall permet d'utiliser le nom du processus plutôt que son numéro
d'identification. Ce qui veut dire aussi que si plusieurs processus ont
le même nom (par exemple plusieurs instances de kedit), il les "kill"
toutes à la fois, sans distinction.

kill utilise le numéro du processus, obtenu avec un "ps aux" par exemple
(je ne suis pas très fort dans les options du "ps", cfr "man ps").C'est
plus raffiné, plus précis, ça permet par la même occasion de voir les
processus qui tournent sur la machine...

slay permet de tuer les processus appartenant à un utilisateur en
particulier. Disons que l'utilisateur "schtroumpf" vient régulièrement
sur ma machine et qu'il ne quitte pas toujours proprement (de sa faute
ou de la faute des logiciels qu'il utilise, peu importe), et donc que
certains processus lancés par lui restent actifs alors qu'il s'est
déconnecté. Hop! "slay schtroumpf" et tout est nettoyé. Attention
évidemment à ce qu'un de ces processus ne soit pas qqchose d'important à
ne pas tuer!






Plus d'informations sur la liste de diffusion Linux-bruxelles