Мені потрібно знайти певний процес і вбити цей процес. Я написав таку команду:
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 '{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.
"Деякий пошук" - це будь-яка назва процесу, яку ви хочете здійснити, наприклад, "java", тож, скажімо, кількість процесів Java становить 200+, тому вбивство по одному буде занадто типовим.
так що ви можете використовувати вищезазначену команду.
Дякую.
Використовуйте pgrep
параметр -f.
kill $(pgrep -f dmn)
pgrep
, чому б не просто pkill -f dmn
?
$()
синтаксис:kill $(ps -e | grep dmn | awk '{print $1}')
.