pgrep / pidof використання для назв складних процесів?


11

Я намагаюся використовувати 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

Ви отримуєте список усіх процесів, починаючи з імені Process, але я хотів би зробити щось на кшталт:

pidof processname test
pgrep processname test

Щоб отримати лише потрібний мені PID (у цьому прикладі було б 659)

ОНОВЛЕННЯ

Використовуючи прапор -f на pgrep, я просто виконую те, що хотів, роблячи:

pgrep -f "processname test"

Ви отримаєте правильну відповідь.


Правильно, як правило, вам потрібно, -fтому що ви хочете відповідати в повному командному рядку. Зауважте, що pgrep працює на регулярних виразах, тому ви також можете робити порівняно складне зіставлення.
cjc

Відповіді:


10
$ 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.