Ответы:
Вы можете использовать, pgrep
пока включаете -f
параметры. Это позволяет использовать pgrep
ключевые слова во всей команде (включая аргументы), а не только в имени процесса.
pgrep -f keyword
На странице руководства :
-f
Шаблон обычно сопоставляется только с именем процесса. Когда-f
установлено, используется полная командная строка.
Если вы действительно хотите избежать использования pgrep, попробуйте:
ps -ef | awk '/[k]eyword/{print $2}'
Обратите внимание на []
первую букву ключевого слова. Это полезный прием, позволяющий избежать совпадения с awk
самой командой.
kill -9 `pgrep -f keyword`
ps aux | grep chrome
[k]
уловку pgrep -f
. Мой скрипт выполнялся в подоболочке, поэтому я думаю, что он собирал свою родительскую команду (трудно сказать наверняка - возвращенный им pid исчез, когда команда была завершена!)
pkill -9 -f keyword
?
Пытаться
ps -ef | grep "KEYWORD" | awk '{print $2}'
Эта команда должна дать вам PID процессов с KEYWORD в них. В этом случае awk
возвращает то, что находится во 2-м столбце вывода.
| head -1
.
Чтобы убить процесс с помощью определенного ключевого слова, вы можете создать псевдоним в ~/.bashrc
(linux) или ~/.bash_profile
(mac).
alias killps="kill -9 `ps -ef | grep '[k]eyword' | awk '{print $2}'`"
| head -1
обертки делает все это красиво и аккуратно.