Мне нужно найти определенный процесс и убить этот процесс. Я написал такую команду:
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}').