Как убить все процессы с заданным частичным именем? - PullRequest
520 голосов
/ 24 января 2012

Я хочу убить все процессы, которые я получаю:

ps aux | grep my_pattern

Как это сделать?

Это не работает:

pkill my_pattern

Ответы [ 12 ]

0 голосов
/ 18 апреля 2019

Найден лучший способ сделать это для сервера, который не поддерживает ' pkill '

" kill -9 $ (ps ax | grep My_pattern | fgrep -vgrep | awk '{print $ 1}')"

Вы не должны зацикливаться.

0 голосов
/ 29 марта 2019

лучше и безопаснее использовать pgrep -f с kill, или просто pkill -f, grep ing ps выход может работать неправильно.

В отличие от использования ps | grep, с которымвам нужно отфильтровать строку grep, добавив | grep -v или используя трюки с шаблонами, pgrep просто не выберет себя по дизайну.

Более того, если ваш шаблон появится в ps s UID / USER, SDATE / START или любой другой столбец, вы получите нежелательные процессы в выводе и убьете их, pgrep + pkill не страдают этим недостатком.

также я обнаружил, что killall -r / -regexp не работает с моим регулярным выражением.

pkill -f "^python3 path/to/my_script$"

man pkill

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...