Disons que je veux tuer tous les processus contenant le mot amarok. Je peux imprimer les commandes que je veux exécuter. Mais comment faire pour que le shell les exécute. c'est à dire.
ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'
Output:
kill -9 3052
kill -9 3071
kill -9 3076
kill -9 3077
kill -9 3079
kill -9 3080
kill -9 3082
kill -9 3083
kill -9 3084
kill -9 3085
kill -9 3086
kill -9 3087
kill -9 3088
kill -9 3089
kill -9 4031
shell
command-line
kill
PuercoPop
la source
la source
| sh -x
après le reste de votre ligne de commande?kill -9
sur un processus voir [gestion des processus] [1] [1]: mywiki.wooledge.org/… ...amarokx
aussi le processus? Je pkill vi, il tuesupervisorctl
qui contient «vi» dans le mot.-9
est assez inutile - existe-t-il de meilleures informations sur les raisons pour lesquelles les gens ne devraient pas l'utiliser? Il dit simplement "ne faites pas, et renvoyez les gens qui l'utilisent"; mais tout ce que j'ai jamais vu ailleurs, c'estkill -9 {pid}
comment tuer quelque chose ...Réponses:
De
man 1 pkill
Ce qui signifie, par exemple, si nous voyons ces lignes dans
ps aux
:Nous pouvons tous les tuer en utilisant l'
-f
option pkill :la source
-9
à la fin!httpdx
aussi le processus? Je pkill vi, il tuesupervisorctl
qui contient «vi» dans le mot.-i
, commepkill -fi wine
. Pour vérifier avant et après, utilisezps uax | grep -i wine
.xargs (1): xargs - construire une ou des listes d'arguments et exécuter l'utilitaire. Utile lorsque vous souhaitez diriger des arguments vers quelque chose comme
kill
ouls
ou ainsi de suite.la source
ps aux | grep -ie amarok | grep -v grep | awk '{print $2}' | xargs kill -9
(grep -v
signifiegrep --invert
)utilisation
pgrep
la source
pkill -9 amarok
kill -9 $(pgrep -f amarok)
Pour ce faire, le moyen le plus sûr est:
la source
-l
drapeau. En fait, j'ai juste un aliaspkill
pourpkill -fl
que je puisse exécuter quelque chose commepkill jboss
et cela crachera le processus qu'il vient de tuer.amarokx
aussi le processus? Je pkill vi, il tuesupervisorctl
qui contient «vi» dans le mot.pkill: invalid option -- 'l'
- pkill de procps-ng 3.3.12Je pense que cette commande killall est exactement ce dont vous avez besoin. La commande est décrite comme "tuer les processus par leur nom". Elle est facile à utiliser. Par exemple
Cette commande va tuer tous les processus de Chrome.Voici un lien sur la commande killall
http://linux.about.com/library/cmd/blcmdl1_killall.htm
J'espère que cette commande pourrait vous aider.
la source
ps aux
la sortie de la recherchepkill -x correspond exactement au nom du processus.
pkill -f est similaire mais permet un modèle d'expression régulière.
Notez que pkill sans aucun autre paramètre (par exemple -x, -f) permettra des correspondances partielles sur les noms de processus. Donc "pkill amarok" tuerait amarok, amarokBanana, bananaamarok, etc.
Je souhaite que -x soit le comportement par défaut!
la source
amarokx
aussi le processus? Je pkill vi, il tuesupervisorctl
qui contient «vi» dans le mot.Si vous souhaitez exécuter la sortie d'une commande, vous pouvez la placer à l'intérieur
$(...)
, mais pour votre tâche spécifique, jetez un œil aux commandeskillall
etpkill
.la source
Vous pouvez également évaluer votre sortie en tant que sous-processus, en entourant le tout de tiques inversées ou en le mettant dans $ ():
la source
try kill -s 9
ps -ef |grep "Nov 11" |grep -v grep | awk '{print $2}'
Pour tuer les processus du 11 novembre ou kill -s 9ps -ef |grep amarok|grep -v grep | awk '{print $2}'
Pour tuer les processus qui contiennent le mot amarokla source
Peut-être ajouter les commandes au fichier exécutable, définir l'autorisation + x puis exécuter?
la source
Si vous utilisez cygwin ou un shell minimal qui manque,
killall
vous pouvez simplement utiliser ce script:killall.sh - Tuer par nom de processus.
Usage:
la source
kill: invalid argument f