find .
Хотя Вы, вероятно, хотели бы войти безотносительно ограничения параметров, Вам нужно.
Вот немного сценария удара онлайн, который я использую:
ps auxwww | grep -v grep | grep -i $1 | awk '{print $2}' | xargs kill -9
Я уничтожаю все процессы, имя которых содержит первый (нечувствительный к регистру) параметр. Разбивка каждой части:
ps auxwww
печать все процессы с очень широким полем "команды"grep -v grep
есть ли для исключения себя из уничтоженияgrep -i $1
соответствия все строки, которые содержат первый параметрawk '{print $2}'
захваты все идентификаторы процессаxargs kill -9
уничтожает все выбранные процессыxargs
.
–
27.10.2011, 08:12
pkill -9 -f $1
. Кроме того, не советуйте использовать сигнал 9 (УНИЧТОЖАЮТ). Это - последнее средство способ остановить процесс, не тот, который должен обычно использоваться.
– jlliagre
27.10.2011, 08:34
Psdoom является действительно единственным способом уничтожить процесс. http://psdoom.sourceforge.net/
Очень быстрый способ убить несколько процессов (без необходимости писать скрипт)
USAGE: ./autokill.kl.sh <proc-name> => This will give you 5 seconds to change your mind and control-C out of the program.
USAGE: ./autokill.kl.sh <proc-name> now => This will immediately kill all processes matching the string/pattern you specified!!!
MODEL: ./autokill.kl.sh httpd
MODEL: ./autokill.kl.sh httpd now
MODEL: ./autokill.kl.sh httpd view => This will only show you the list of processes matching the pattern you specified.
Скрипт можно напрямую скачать здесь.
Я действительно предпочитаю использовать команду pgrep / pkill. Вот пример:
[root@testrhel7 ~]# pgrep -l http
2967 httpd
2968 httpd
2969 httpd
2970 httpd
2971 httpd
2972 httpd
[root@testrhel7 ~]#
[root@testrhel7 ~]# pkill -e http
httpd killed (pid 2967)
httpd killed (pid 2968)
httpd killed (pid 2969)
httpd killed (pid 2970)
httpd killed (pid 2971)
httpd killed (pid 2972)
[root@testrhel7 ~]#
Конечно, вы можете использовать цикл for:
[root@testrhel7 ~]# ps -ef |grep http| grep -v grep
root 2989 1 0 16:06 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2990 2989 0 16:06 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2991 2989 0 16:06 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2992 2989 0 16:06 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2993 2989 0 16:06 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2994 2989 0 16:06 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
[root@testrhel7 ~]#
[root@testrhel7 ~]# for i in $(ps -ef | awk '/http/ {print $2}'); do kill -9 $i; done
Я надеюсь это было полезным, счастливым убийством.