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