Как убить весь процесс с заданным именем?

Для этого я бы написал функцию:

s() {
    ssh "really-really-long-hostname$1"
}

Затем назовите его так:

s 10037

Дополнительная литература:

33
13.10.2016, 12:09
5 ответов
pkill -f 'PATTERN'

Убьет все процессы, которым соответствует шаблон PATTERN . С параметром -f будет учитываться вся командная строка (т.е. включая аргументы). Без опции -f будет учитываться только имя команды.

См. Также man pkill в вашей системе.

57
20.08.2021, 11:57
ps -eaf | grep -i applicationname| grep -iv 'grep'| awk '{print "kill -9" " "  $2}'|sh
-1
27.01.2020, 19:49

Проблема в том, что ps -A | grep <имя_приложения> | xargs -n1 возвращает такой вывод

19440
?
00:00:11
<application_name>
21630
?
00:00:00
<application_name>
22694
?
00:00:00
<application_name>

. Вы можете использовать awk , чтобы получить сначала столбец ps output .

ps -A | grep <application_name> | awk '{print $1}' | xargs -n1

Вернет список PID

19440
21630
22694

И добавив kill -9 $ 1 , вы получите команду, которая убивает все PID

ps -A | grep <application_name> | awk '{print $1}' | xargs kill -9 $1
20
20.08.2021, 11:57

killall может сделать это.

$ killall application_name
1
20.08.2021, 11:57

pkillотправляет SIGTERMпо умолчанию, и в моем случае pkill -f <some_pattern>не убивал мои процессы. Я рекомендую приведенную ниже команду для таких случаев, которая отлично сработала для меня!

kill -9 $(pgrep -f somepattern)

Я также рекомендую посмотреть, какие процессы совпадают, прежде чем запускать команду kill

pgrep -af somepattern
0
20.08.2021, 11:57

Теги

Похожие вопросы