Мне нужно найти определенный процесс и убить этот процесс. Я написал такую команду:
ps -e | grep dmn | awk '{print $1}' | kill
Где имя процесса dmn
. Но это не работает. Как найти процессы по именам и kill
им.
Мне нужно найти определенный процесс и убить этот процесс. Я написал такую команду:
ps -e | grep dmn | awk '{print $1}' | kill
Где имя процесса dmn
. Но это не работает. Как найти процессы по именам и kill
им.
Ответы:
kill $(ps -e | grep dmn | awk '{print $1}')
kill $(ps -efw | grep dmn | grep -v grep | awk '{print $2}')
не знаю, почему и не слишком заботится, чтобы посмотреть на него дальше.
kill
пытался убить даже процесс 'grep', который пытался искать шаблон
\n
после каждой awk, например, в awk '{print $1"\n"}'
?
Если вы хотите удалить несколько процессов, вы можете использовать это:
ps -efw | grep dmn | grep -v grep | awk '{print $2}' | xargs kill
Примечание: вам нужно удалить сам процесс grep из вывода, поэтому grep -v grep
он используется.
Возможно, вам это не понадобится pipe
, если у вас есть pidof
команда и вы знаете имя изображения, я сделал это так:
kill $(pidof synergyc)
$()
Я понимаю это, поскольку он преобразует этот вывод в переменную, которую может использовать kill, по сути, как это делает pipe. Короче и проще для понимания, чем некоторые другие варианты, но также может быть менее гибким и более прямым.
for procid in $(ps -aux | grep "some search" | awk '{print $2}'); do kill -9 $procid; done
привет друзья .. мы можем сделать это с помощью цикла for.
«Some search» - это любое имя процесса, которое вы хотите найти, например «java», так что, допустим, количество java-процессов составляет 200+, так что уничтожение одного за другим будет слишком типичным.
так что вы можете использовать вышеуказанную команду.
Благодарю.
Используйте pgrep
с опцией -f.
kill $(pgrep -f dmn)
pgrep
, то почему не просто так pkill -f dmn
?
$()
синтаксис:kill $(ps -e | grep dmn | awk '{print $1}')
.