Назад | Перейти на главную страницу

Использование pgrep / pidof для сложных имен процессов?

Я пытаюсь использовать pidof или pgrep, чтобы отправить HUP процессу в моей системе. Проблема в том, что я хочу убить процесс только с помощью точного параметра.

Это результат 'ps awx'

  657 ?        S      0:00 processname software
  658 ?        S      0:00 processname demo
  659 ?        S      0:00 processname test

Сделав одно из следующих действий:

pidof processname 
pgrep processname

Вы получаете список всех процессов, начинающихся по имени процесса, но я хотел бы сделать что-то вроде:

pidof processname test
pgrep processname test

Чтобы получить только нужный мне PID (в этом примере это 659)

ОБНОВИТЬ

Используя флаг -f в pgrep, я просто делаю то, что я хотел:

pgrep -f "processname test"

Вы получите правильный ответ.

$ ps aux |grep [d]evio
user01   10220  0.0  0.1   5376  2424 pts/5    S+   11:41   0:00 ssh devio
$ pgrep -f "ssh devio"
10220
$ pkill -0 -f "ssh devio" ; echo $?
0