Como posso ver quais processos estão em execução?

21

Eu uso o Ubuntu Server 10.10 e gostaria de ver quais processos estão em execução. Eu sei que o PostgreSQL está sendo executado na minha máquina, mas não consigo vê-lo com os comandos topou ps, portanto, suponho que eles não estejam mostrando todos os processos em execução. Existe outro comando que mostrará todos os processos em execução ou existem outros parâmetros que eu possa usar com topou pspara isso?

Jonas
fonte

Respostas:

26

Na pspágina do manual:

-e Selecione todos os processos. Idêntico a -A.

Assim, ps -eexibirá todos os processos. As opções comuns para "dê-me tudo" são ps -elyou ps aux, o último é o estilo BSD. Muitas vezes, as pessoas canalizam essa saída para grepprocurar um processo, como na resposta do xenoterracide. Para evitar também se ver grepna saída, você geralmente verá algo como:

 ps -ef | grep [f]oo

onde foo é o nome do processo que você está procurando.

No entanto, se você estiver procurando por um processo específico, recomendo usar o pgrepcomando, se estiver disponível. Acredito que esteja disponível no Ubuntu Server. Usar pgrepsignifica que você evita a condição de corrida mencionada acima. Ele também fornece alguns outros recursos que exigiriam greptruques cada vez mais complicados para serem replicados. A sintaxe é simples:

pgrep foo

onde foo é o processo pelo qual você está procurando. Por padrão, ele simplesmente emitirá o ID do processo (PID) do processo, se encontrar um. Veja man pgreppara outras opções de saída. Achei a seguinte página muito útil:

http://mywiki.wooledge.org/ProcessManagement

Steven D
fonte
Eu me pergunto qual a porcentagem de pessoas que usam pssem conhecer as bandeiras. Eu apenas jogo auxsempre; Não tenho idéia do que as bandeiras individuais realmente controlam.
Michael Mrozek
3

você já tentou ps aux | grep postgres? realmente deve aparecer se o postgres estiver rodando. Se não ... como você sabe que o postgres está em execução?

(nota: é um equívoco comum que é, ps -auxmas não está correto)

xenoterracida
fonte
Obrigado, ps auxfuncionou melhor, mostrou cerca de 70 processos, enquanto psmostrou apenas dois. Eu sei que o PostgreSQL estava em execução desde que vi que ele foi iniciado na inicialização e foi interrompido no desligamento.
Jonas
@ Jonas, alguns scripts de inicialização são mal escritos. Não acredite neles apenas porque eles dizem que algo foi iniciado e parado. Apenas alguns conselhos
xenoterracide
Há também pgreppara este, que tem a vantagem de não pegar o seu ps aux | grep postgrespróprio comando na lista de processos e saída lo
Michael Mrozek