process id e kill process - comando de ps

5

Por favor, veja a saída abaixo do comando ps :

abc@smaug:~/Desktop$ ps ax | grep firefox
 2213 ?        Sl     2:01 /usr/lib/firefox/firefox
 2644 pts/0    S+     0:00 grep --color=auto firefox

Por favor, explique as duas linhas e que id de processo pode ser usado para matar o processo do firefox?

O ID do processo 2644 continua mudando toda vez que eu executo esse comando.

    
por CODError 10.10.2013 / 14:49

4 respostas

10

ao tentar encontrar o PID de firefox , você inicia um novo processo e filtra todos os processos indesejados. esse processo de filtragem ( grep firefox ) também contém o termo de pesquisa "firefox" e, portanto, encontra-se.

sempre que você reinicia o ps ax | grep firefox , você inicia um novo grep -process, por isso o PID continua mudando.

Então, a resposta curta é:

use PID 2213 to kill firefox

Se você quiser se livrar do falso positivo, pode usar outro grep para filtrá-lo:

 $ ps ax | grep firefox | grep -v grep

ainda outra opção é usar pgrep (que só lhe dará o PID dos processos encontrados)

 $ pgrep firefox
 2213
    
por 10.10.2013 / 14:57
2

As outras respostas já explicam por que você vê duas menções de firefox . É por isso que a maneira de fazer o que você está tentando não é analisar ps , mas usar os comandos pkill e pgrep :

   pgrep,  pkill  -  look  up  or signal processes based on name and other
   attributes

Por exemplo, para encontrar instâncias em execução de firefox :

$ pgrep -l firefox 
1020 firefox

Para matá-los:

$ pkill firefox
    
por 10.10.2013 / 18:57
1

O processo do firefox que você precisa matar é:

2213 ?        Sl     2:01 /usr/lib/firefox/firefox

O processo 2644 é o comando grep que você está executando, o qual, como você mencionou corretamente, altera sua ID toda vez que você o executa.

    
por 10.10.2013 / 14:57
1

one-liner:

ps aux | grep firefo[x] | awk '{print $2}' | xargs kill
    
por 27.12.2015 / 04:21

Tags