Como selecionar processos pelo nome do comando ao usar ps no Mac OS X

2

No Linux, eu uso ps -C command_name para selecionar processos do nome do comando especificado. Mas não funciona no Mac OS X. Eu li a man page do ps com cuidado, mas simplesmente não consigo encontrar nenhuma opção para fazer isso.

Então, alguém sabe se existe uma maneira de selecionar processos especificados pelo nome do comando ao usar ps no Mac OS X?

    
por khotyn 26.07.2012 / 10:53

4 respostas

2

No caso geral, parece que você não pode realmente fazer isso sem usar o grep como um ajudante ou canalizador para um segundo segundo comando Linux para ajudar. Se você tentar fazer isso iniciando um processo de algum outro idioma, por exemplo, Java, você pode precisar evitar o uso de qualquer shellism e, portanto, precisa fazer um comando. Portanto, considere pgrep como uma alternativa. por exemplo. Para listar todos os processos java:

pgrep java
    
por 25.02.2015 / 01:42
1

Uma maneira fácil de filtrar a saída de ps é usar uma ferramenta que geralmente pode filtrar a entrada, grep .

Para fazer isso, apenas enviamos a saída de ps para o grep, assim:

oliver@cloud:~$ ps | grep bash
31131 pts/0    00:00:00 bash

Caso você esteja listando todos processos, você rapidamente se deparará com um problema:

oliver@cloud:~$ ps a | grep bash
 2729 pts/0    S+     0:00 grep bash
31131 pts/0    Ss     0:00 -bash

Agora ele retorna grep também! Como consertamos isso?

Simplesmente usando grep mais uma vez , para filtrar o resultado excedente:

oliver@cloud:~$ ps a | grep bash | grep -v grep
31131 pts/0    Ss     0:00 -bash
    
por 26.07.2012 / 16:02
0

Eu enfrentei o mesmo problema. Aqui está uma solução, não totalmente satisfatória:

ps -p 'pidof <command_name> | tr ' ' ',''

Isso não funciona o tempo todo (por exemplo, quando o nome do comando é, na verdade, uma chamada para um intérprete) e é bastante feio. Espero que possa dar ideias e produzir melhores soluções!

    
por 19.08.2013 / 06:12
0

< - OSX - > Para obter o PID de execução do binário chamado Humans, combinando o nome do binário COMMAND aka.

helios: ~ TimberWolf $ killall -s Humanos

- > Apenas o número

helios: ~ TimberWolf $ killall -s Humanos | tr -d [: alpha:] [: space:] -

- > Use o PID com o comando ps para detalhes mais refinados, como a prioridade do binário.

helios: ~ TimberWolf $ ps killall -s Humans | tr -d [:alpha:][:space:]-

    
por 08.02.2014 / 18:02

Tags