Я хочу убить все процессы, которые получаю:
ps aux | grep my_pattern
Как это сделать?
Это не работает:
pkill my_pattern
Используйте pkill -f
, который соответствует шаблону для любой части командной строки
pkill -f my_pattern
Убить все процессы, соответствующие строке "myProcessName":
Один вкладыш:
ps -ef | grep myProcessName | grep -v grep | awk '{print $2}' | xargs kill -9
ps -ef | grep myProcessName | grep -v grep | awk '{print $2}' | xargs -r kill -9
чтобы xargs не выполнял команду, если не задано никаких аргументов.
ps -ef | grep 'myProcessName' | grep -v grep | awk '{print $2}' | xargs -r kill -9
Без кавычек только один из моих фоновых процессов был убит при первом запуске. Запуск его снова убил остальных.
Если вам нужна большая гибкость при выборе процессов, используйте
for KILLPID in `ps ax | grep 'my_pattern' | awk ' { print $1;}'`; do
kill -9 $KILLPID;
done
Вы можете использовать grep -e и т.д.
kill -9 `ps ax | awk '[m]y_pattern { print $1 }'`
(обратите внимание также на рефакторинг; см. также мой комментарий к ответу @ synthesizerpatel).
вы можете использовать следующую команду для перечисления процесса
ps aux | grep -c myProcessName
если вам нужно проверить счетчик этого процесса, запустите
ps aux | grep -c myProcessName |grep -v grep
после чего вы можете убить процесс, используя
kill -9 $(ps aux | grep -e myProcessName | awk '{ print $2 }')
Если вы судите pkill -f PATTERN
слишком опасно, я написал ezkill a bash script, который подскажет вам выберите, какие процессы находятся между теми, которые соответствуют PATTERN, которые вы хотите убить.
Также вы можете использовать killall -r my_pattern
. -r
Интерпретировать шаблон имени процесса как расширенное регулярное выражение.
killall -r my_pattern
Звучит плохо?
pkill `pidof myprocess`
Пример:
# kill all java processes
pkill `pidof java`
Вы можете использовать следующую команду для
kill -9 $(ps aux | grep 'process' | grep -v 'grep' | awk '{print $2}')
Вы можете использовать следующую команду для:
ps -ef | grep -i myprocess | awk {'print $2'} | xargs kill -9
или
ps -aux | grep -i myprocess | awk {'print $2'} | xargs kill -9
Это работает для меня.
my_pattern
просто подстрокой имени или содержит специальные символы регулярного выражения?