Мне нужно найти определенный процесс и убить этот процесс. Я написал такую команду:
ps -e | grep dmn | awk '{print $1}' | kill
Где имя процесса dmn
. Но это не работает. Как найти процессы по именам и kill
им.
linux
bash
shell
command-line
command-line-arguments
user567879
источник
источник
$()
синтаксис: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
он используется.источник
Вы могли бы использовать
если в вашей системе есть команда pkill .
источник
Просто добавляю другие, но мне нравится использовать возможности регулярных выражений awk:
kill $(ps | awk '/dmn/{print $1}')
источник
Если у вас есть
pidof
команда в вашей системе (я знаю, что оболочки, такие как ZSH, поставляются с ней по умолчанию, если я не ошибаюсь), вы можете сделать что-то вроде.kill -9 $(pidof dmn)
источник
Вы также можете использовать killall :
источник
Возможно, вам это не понадобится
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
?