Como faço para pgrep pelo primeiro argumento de linha de comando?

2

Eu quero usar pgrep para encontrar o pid de um processo , por exemplo

$ pgrep bluetoothd
441

No entanto, os processos que preciso pesquisar são executados em um wrapper chamado RunFIDProcess :

[cama@dc1-dev-lin-1204 tests]$ ps -ef | grep RunFIDProcess
tps        544     1  0 Dec13 ?        00:00:00 /bin/sh .//RunFIDProcess CASE_SJDI SJdi -c SJdi.auto.cfg -m PRIMARY_WARM
tps        546     1  0 Dec13 ?        00:00:00 /bin/sh .//RunFIDProcess CASE_ETH Eth -c Eth.cfg
tps        547     1  0 Dec13 ?        00:00:00 /bin/sh .//RunFIDProcess CASE_DBWEBSERVER DbWebServer
tps        556     1  0 Dec13 ?        00:00:00 /bin/sh .//RunFIDProcess CASE_TABLE_PROXY TableProxy -c TableProxy.cfg
cama      4519     1  0 07:30 ?        00:00:00 /bin/sh .//RunFIDProcess CASE_SJDI SJdi -c SJdi.auto.cfg -m PRIMARY_WARM
cama      4524     1  0 07:30 ?        00:00:00 /bin/sh .//RunFIDProcess CAMA_DS5_QRY DaqSvr -m cold -c cama_DaqSvr.DS5.cfg
cama      4530     1  0 07:30 ?        00:00:00 /bin/sh .//RunFIDProcess CAMA_US_OSUB Osub -c cama_Osub.US.auto.cfg -Cold
cama      4534     1  0 07:30 ?        00:00:00 /bin/sh .//RunFIDProcess CAMA_DS7_QRY DaqSvr -m cold -c cama_DaqSvr.DS7.cfg

Então,

[cama@dc1-dev-lin-1204 tests]$ pgrep CAMA_US_OSUB

não retorna nada.

Como posso encontrar um processo pelo seu nome, assim como seu primeiro argumento de linha de comando?

    
por Andrew Cheong 22.12.2016 / 21:53

1 resposta

5

A opção -f para pgrep permite pesquisar a lista completa de argumentos para cada processo. Você pode, portanto, usar pgrep -f CAMA_US_0SUB para pesquisar qualquer coisa com o usado em seu argumento (ou, de fato, processar com esse nome).

    
por 22.12.2016 / 22:24