Uma n’est pas vraiment belle, mais aucun mâle ne peut nier qu’elle a donné un nouveau sens au mot “sexy” dans Pulp Fiction. La preuve qu’on peut être hot avec la coupe de Mireille Mathieu si on a du talent. Exploit renouvelé en combinaison couleur banane quelques années plus tard, fallait le faire. Les hommes ont toujours bandé sur les nanas armées, c’est une sorte de cross over dans le domaine du fantasme.
Nous on est plutôt anti-flingues, mais il y a des trucs qui méritent d’être tués. Par exemple les processus récalcitrants. Un petit script Python qui part en boucle infinie, Skype qui décide que non, il ne se fermerait pas. Et qu’il ne signalerait pas les nouvelles conversations non plus.
Sous Windows CTRL + ALT + SUPP
c’est un peu une seconde nature. Sous Mac, les zélottes prétendront que ça plante pas. Sous Linux par contre, vous allez tenter un par un : pkill
, killall
, xkill
… Et puis quand (presque toujours) rien ne marche, un bon vieux ps aux | grep machin
suivi de kill -9
.
30 ans de GNU et pas une foutue commande de correcte pour tuer un process sans trouver et taper son ID. Du coup je partage avec vous cette petite fonction à mettre dans son .bashrc:
function killbill { for id in $(ps aux | grep -i $1 | awk '{ print $2 }'); do kill -9 $id; done } |
Attention ça ratisse large: tous les process qui contiennent de près ou de loin la chaîne passée en paramètre sont tués. Case insensitive. Ne tentez pas killbill Python
sous Ubuntu, c’est une mauvaise idée.
Voilà une autre raison d’aimer Tarantino. En plus de celle-ci, évidement:
EDIT: j’ai amélioré la commande depuis.
function killbill { BAK=$IFS IFS=$'\n' for id in $(ps aux | grep -P -i $1 | grep -v "grep" | awk '{printf $2" "; for (i=11; i<NF; i++) printf $i" "; print $NF}'); do service=$(echo $id | cut -d " " -f 1) if [[ $2 == "-t" ]]; then echo $service \"$(echo $id | cut -d " " -f 2-)\" "would be killed" else echo $service \"$(echo $id | cut -d " " -f 2-)\" "killed" kill -9 $service fi done IFS=$BAK } |
Maintenant elle liste les process tués, ignore le process grep, et accepte en DEUXIÈME paramètre -t
pour “test”, qui permet de voir quels processus elle tuerait sans les tuer.
Je me trompe peut-être mais il me semble que “killall -9” est tout aussi efficace non ?
Y deux choses qui foirent 50% du temps sous linux: le copier/coller et killall -9.
J’ai passé des heures essayer de des process comme le daemon d’ubuntu one avec les commandes normales, ça ne marche jamais.
Killbill n’est pas une solution propre, mais par contre le résultat est garanti. Je ne peux plus m’en passer, il est dans tous les .bashrc du moindre des serveurs que je gère.
N’est pas ce que fait pkill ? Bon, à part le -9, certes. Sinon, les magic keys… portent bien leur nom.
Quoting myself:
Pkill et killall marchent un jour sur deux, sauf quand c’est la pleine lune et jamais un vendredi pendant une année bisextile.
D’où l’intérêt de passer à zsh et son auto-complétion plutôt que bash =)
dans zshrc j’y ai collé ça:
zstyle ‘:completion:*:*:*:*:processes’ menu yes select
zstyle ‘:completion:*:processes’ command ‘ps -au$USER’
zstyle ‘:completion:*:*:kill:*:processes’ list-colors “=(#b) #([0-9]#)*=36=31”
Et j’ai plusieurs options de complétions: un menu listant mes process, auto-complétion en fonction du PID ou du nom du process … à partir de la commande kill.
Après avoir pas mal utilisé bash au début, je suis rapidement arrivé à la fin des personnalisation que je pouvais apporté (c’était peut-être à cause de mes compétences de l’époque aussi ^^). Alors qu’avec zsh t’as pas mal de trucs super pratique déjà intégrés et surtout un manuel et une doc juste monstrueux.
Bref zsh c’est bon, mangez-en =)
Je connaissais pas, vais aller voir ça, merci du tuyau huggy ;)
Cette fonction très sympathique
de demeuréau demeurant est un peu trop meurtrière, dans le sens où elle laisse traîner beaucoup trop de morceaux de cadavres et de sang (segments d’allocation mémoire actifs, fichiers temporaires ouverts, processus parents orphelins, sockets occupés…)Si je peux me permettre de proposer ma contribution pour passer de Uma Thurman à Sam Fisher:
Le code ci dessus est tronqué par erreur, la voici au complet:
http://paste.ubuntu.com/6088302/
Ah ouai, c’est vachement mieux ! Merci !