Lista processo por nome excluindo grep [duplicado]

0

Eu estou tentando listar todos os processos ffmpeg que estão atualmente rodando na máquina Debian (Ubuntu 15).

Eu uso o seguinte comando:

ps aux | grep 'ffmpeg'

Se apenas um processo ffmpeg estiver em execução, ainda recebo dois resultados. Um para o processo real e outro para grep que está procurando por ffmpeg na lista de processos.

max      21599 13.2  3.0 503848 92288 ?        Rl   01:39   1:18 ffmpeg -f video4linux2 -i /dev/video0 -f mpeg1video -b:v 800k -r 30 http://127.0.0.1:8082/oops/1024/640/ -nostdin -nostats -loglevel fatal
max      23789  0.0  0.0  13688  2172 pts/3    S+   01:49   0:00 grep --color=auto ffmpeg

Como posso modificar meu pedido para que o resultado do grep que é realmente meu pedido seja omitido da saída?

    
por Maxim V. Pavlov 07.09.2015 / 00:53

1 resposta

2

Você pode usar um truque:

ps aux | grep '[f]fmpeg'

Aqui [] é um formato usado para indicar o intervalo de caracteres para correspondência usando grep , estamos usando [f] para corresponder apenas a f . Como o [f] é convertido em f , o literal ps aux | grep 'ffmpeg' não será exibido em ps output.

Observe também que a aparência de ps aux | grep 'ffmpeg' na saída de ps aux | grep 'ffmpeg' depende principalmente do tempo que leva para a tabela de processos ser mostrada.

Note que existe um programa chamado pgrep para procurar por processos, você pode nos dizer que ps aux não é absolutamente necessário.

    
por 07.09.2015 / 00:55