Получение сообщений из ps -ef | grep ключевое слово
Я хочу использовать ps -ef | grep "keyword"
для определения pid процесса daemon (в нем есть уникальная строка вывода ps -ef).
Я могу убить процесс с помощью pkill keyword
есть ли какая-либо команда, которая возвращает pid вместо того, чтобы убить его? (pidof или pgrep не работает)
Ответы
Ответ 1
Вы можете использовать pgrep
, пока вы включаете параметры -f
. Это делает pgrep
сопоставление ключевых слов во всей команде (включая аргументы) вместо имени процесса.
pgrep -f keyword
На странице man:
-f
Обычно шаблон сопоставляется только с именем процесса. Когда -f
установлен, используется полная командная строка.
Если вы действительно хотите избежать pgrep, попробуйте:
ps -ef | awk '/[k]eyword/{print $2}'
Обратите внимание на []
вокруг первой буквы ключевого слова. Это полезный трюк, чтобы избежать соответствия самой команды awk
.
Ответ 2
Try
ps -ef | grep "KEYWORD" | awk '{print $2}'
Эта команда должна дать вам PID процессов с KEYWORD в них. В этом случае awk
возвращает то, что находится во 2-м столбце от выхода.
Ответ 3
ps -ef | grep KEYWORD | grep -v grep | awk '{print $2}'
Ответ 4
Я использую
ps -C "keyword" -o pid=
Эта команда должна дать вам номер PID.
Ответ 5
Это доступно в linux: ключевое слово pidof