pgrep / pidof utilizzo per nomi di processi complessi?


11

Sto cercando di usare pidof o pgrep per essere in grado di inviare un HUP a un processo nel mio sistema. Il problema è che voglio solo terminare il processo con un parametro preciso.

Questo è l'output di 'ps awx'

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

Effettuando una di queste:

pidof processname 
pgrep processname

Ottieni l'elenco di tutti i processi che iniziano per nome processo, ma vorrei fare qualcosa del tipo:

pidof processname test
pgrep processname test

Per recuperare solo il PID di cui ho bisogno (in questo esempio sarebbe 659)

AGGIORNARE

Usando il flag -f su pgrep fa solo quello che volevo, facendo:

pgrep -f "processname test"

Avrai la risposta giusta.


Bene, in genere è necessario -fperché si desidera abbinare l'intera riga di comando. Nota che pgrep opera su espressioni regolari, quindi puoi anche fare corrispondenze relativamente complesse.
cjc,

Risposte:


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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.