Você já se viu com pelo menos cinco abas abertas no navegador tentando encontrar a resposta para um problema Linux que enfrentou?
Esse comportamento não é exclusivo de você ou dos humanos em geral. Máquinas também fazem multitarefa. E assim como você, Linux também é multitarefa e executa vários processos simultaneamente. Seja você um desenvolvedor usando Linux profissionalmente ou um usuário comum trabalhando com Linux no dia a dia, você precisa entender esses processos paralelos para manter controle total do seu sistema. Gerenciamento de processos e controle do sistema são aspectos essenciais para rodar um sistema Linux.
Para gerenciar eficientemente os processos em execução, acompanhar o que está acontecendo em tempo real, ter uma visão geral de todos os processos em segundo plano e controlar os recursos do sistema, você precisa de conhecimento técnico sobre gerenciamento de processos. O comando ps aux é um comando poderoso que desempenha um papel vital no gerenciamento de processos e controle do sistema. Neste artigo, vamos aprender mais sobre o comando ps aux e seus casos de uso. Também vamos cobrir os fundamentos de como os processos Linux funcionam.
Entendendo Gerenciamento de Processos em Linux
Ao trabalhar com Linux, a maioria de nossas interações com o sistema acontece através de comandos. Em Linux, um processo é a execução de um comando. Gerenciamento de processos Linux envolve manipular os processos que um comando iniciou. Você pode encerrar um processo, iniciar um processo ou retomar aqueles que foram pausados. Você também pode manipular comandos que estão em andamento.
Existem dois tipos de processos Linux:
- Processos em primeiro plano
- Processos em segundo plano
Processos em Primeiro Plano Linux
Um processo em primeiro plano é aquele que está sendo executado ativamente e tipicamente requer interação constante e em tempo real com o usuário. Quando um processo em primeiro plano está em ação, a execução de outros processos é pausada. Portanto, você não consegue executar outros comandos. Um processo em primeiro plano recebe entrada do teclado como entrada padrão ou stdin. Para evitar confusão, stdin e stdout são fluxos de dados Linux junto com stderr. Basicamente, é como o usuário interage com o processo e fornece dados para ele. Existe saída padrão ou stdout produzida pelo processo baseada em sua funcionalidade e na entrada. Processos em primeiro plano são o modo de execução padrão em Linux.
Processos em Segundo Plano Linux
Processos em segundo plano são o oposto exato dos processos em primeiro plano, pois não requerem interação do usuário e não ocupam exclusivamente todo o espaço do terminal, permitindo a execução de outros processos. O tipo de entrada e saída dos processos em segundo plano também é diferente. Eles normalmente não recebem stdin. Porém, os resultados do processo podem ser exibidos como stdout. A exibição da saída de processos em segundo plano acontece simultaneamente com a saída de outros processos em primeiro plano. Então você pode ver o progresso ou os resultados do processo em segundo plano sem interromper outras ações importantes.
Como executar uma ampla gama de tarefas em Linux depende da linha de comando, processos em primeiro plano podem ser problemáticos, enquanto rodar processos em segundo plano libera seu terminal para trabalhar em outras tarefas. Portanto, colocar uma tarefa em primeiro plano em segundo plano é algo razoável a fazer aqui. Para enviar um processo para o segundo plano você deve primeiro parar sua execução em primeiro plano. Isso é feito simplesmente pressionando CTRL+Z. Depois, digitando o comando bg, o processo parado executará novamente em segundo plano. O comando fg faz o inverso e traz o processo de volta para primeiro plano.
Status do Processo: Sintaxe, Comandos e Interpretando a Saída
Gerenciamento eficiente de processos em Linux requer entender o status dos processos que podem ser monitorados pelo comando ps aux. Mas antes de aprofundar no comando ps aux, vamos aprender sobre diferentes status de processos. Embora existam vários tipos de processos e status de processos, aqui está uma tabela dos mais comuns:
| Status do processo | descrição | |
| Em execução(R) | O processo está sendo executado no momento e consumindo recursos de CPU. | |
| Em modo de espera | Interruptível (S) | O processo está aguardando uma entrada ou evento específico para começar a ser executado novamente. No momento, não está consumindo recursos de CPU. Quando recursos estão disponíveis ou sinais são enviados, o processo retoma. |
| Ininterrupta (D) | Assim como um processo em sono interruptível, um processo em sono não interruptível não está consumindo recursos de CPU. A única diferença é que ele não reage a sinais, apenas volta quando recursos estão disponíveis. | |
| Parado(T) | Uma entrada do usuário ou um evento específico pausou o processo. Um processo no estado parado não consome recursos de CPU. | |
| Morto(X) | O processo foi encerrado e não existe mais. | |
Uma boa compreensão desses status de processos é um aspecto crucial para gerenciar e solucionar problemas em sistemas Linux de forma eficaz. Agora, vamos cobrir a sintaxe e os comandos para obter o status do processo em Linux, bem como como interpretar a saída.
Sintaxe e Comandos para Obter Status do Processo
Você pode obter o status do processo em Linux com a sintaxe básica do comando ps:
ps [process name]
Também existem outras opções usadas com o comando ps:
aux: Esta opção mostra uma lista abrangente de todos os processos em execução no sistema. Fornece informações como IDs de processo (PIDs), IDs de processo pai (PPIDs), CPU e uso de memória, além do status dos processos. A saída fornecida pelo comando ps aux é muito mais organizada, tem melhor legibilidade e contém informações muito mais úteis do que o comando ps básico.
ef: Esta opção mostra uma listagem em formato completo dos processos com detalhes adicionais, incluindo a hierarquia de processos em uma estrutura semelhante a uma árvore.
l: Esta opção fornece um formato de listagem longa, apresentando informações mais detalhadas sobre os processos.
Entendendo a saída
Quando você executa o comando ps com as opções desejadas, ele gera uma saída que representa os processos em execução no seu sistema. A saída consiste em colunas que mostram diferentes atributos do processo, incluindo o ID do processo (PID), ID do processo pai (PPID), uso de CPU, uso de memória, status do processo, tipo de terminal e nome do comando.
Aqui está uma explicação do que cada uma dessas colunas significa:
PID: Esta coluna mostra o ID único do processo.
TTY: Esta coluna mostra o tipo de terminal no qual o usuário fez login.
HORA: Esta coluna é um indicador de quanto CPU é usado por este processo em minutos e segundos.
CMD: Esta coluna representa o nome do comando que iniciou este processo.
Analisar as informações fornecidas pelo comando ps oferece uma compreensão mais profunda do comportamento da sua máquina Linux.
Técnicas Avançadas do ps para Gerenciamento de Processos com o Comando ps
Vamos explorar alguns dos recursos avançados do comando ps e como eles podem ser utilizados de forma eficaz:
1. Classificação de Processos
O comando ps aux pode ser usado para ordenar a saída final com base em diferentes colunas. Por exemplo, você pode ordenar processos por ID do processo ou uso de CPU para vê-los em uma ordem desejada.
Aqui está um exemplo de ordenação de processos com base no ID do processo usando ps aux:
ps aux –-sort pid
O comando head é usado para obter apenas as primeiras cinco linhas da saída.

2. Visualização em Árvore de Processos
Se você quiser ver claramente a relação pai-filho dos processos, pode usar o comando ps com a opção forest.
ps -aux --forest

Para ver a relação entre processos em um padrão semelhante a uma árvore, você também pode usar o comando pstree. Este comando criará uma saída mais compreensível e ilustra perfeitamente a hierarquia entre os processos. Para usar este comando, digite o seguinte:
pstree [pid or username]
Ao fornecer um PID a este comando, você está dizendo ao comando para considerar esse processo como a raiz da árvore.
3. Filtragem de Processos
Imagine que você quer trabalhar com um grupo específico de processos; por exemplo, listar todos os processos de um usuário. Para filtrar processos por uma característica, use o comando ps. Neste exemplo, filtramos os processos por nome de usuário.
ps -u [username]

O comando ps aux grep filtra processos por qualquer padrão ou palavra-chave que você fornecer. Veja o exemplo abaixo:

Este comando lista todos os processos e passa a saída para o grep filtrar a lista por ID do processo. Na imagem acima, você vê todos os processos que contêm o número 15 em suas informações.
Para mais informações sobre o comando ps e seus recursos, consulte a página do manual. O código abaixo exibe a página do manual:
man ps
Gerenciando Prioridade de Tarefas no Linux
Para explicar melhor como o gerenciamento de processos funciona no Linux, você também deve entender prioridade de processo e como alterá-la. Imagine uma situação em que você executa vários processos e o CPU está sobrecarregado de tarefas. Para gerenciar seus recursos corretamente, você precisa mudar a prioridade das tarefas em execução. Cada processo no Linux tem um valor de prioridade. Este valor ajuda o kernel a priorizar tarefas. O número de prioridade varia de -20 a 19, sendo 19 a tarefa menos importante e -20 a mais urgente. O processo com maior prioridade recebe mais tempo de CPU comparado aos outros. Os valores de prioridade são chamados de valores "nice", sendo que valores nice menores indicam maior prioridade.
Use os comandos nice e renice para alocar recursos do sistema de forma eficiente.
Antes de alterar a prioridade dos processos, vamos explorar o primeiro caso de uso do comando ps.
- Exibindo a prioridade atual de todos os processos usando o comando ps:
Este comando lista todos os processos junto com seus IDs de processo (PID), nomes de comando e a prioridade atual (valor nice):
ps -eo pid,cmd,nice

- Iniciando um processo com prioridade alta padrão usando o comando nice:
Você pode iniciar um processo com a prioridade desejada usando este comando:
nice -n [priority] [command]
Substitua [priority] pelo valor negativo desejado representando o nível de prioridade e [command] pelo comando que você quer executar.
I'm ready to translate to Portuguese. Please provide the English text you'd like me to translate.

- Alterando a prioridade de um comando já em execução:
renice -n [priority] -p [PID]
Substitua o ID do processo que você deseja manipular por [PID].
Se você quer uma máquina Linux poderosa para realizar todos os tipos de tarefas, um Linux VPS é a melhor solução para você. Cloudzy oferece vários planos Linux VPS com sua distribuição preferida pré-instalada. Com características vantajosas como suporte 24/7, política de reembolso de 30 dias e garantia de uptime de 99,95%, Cloudzy consegue manter preços baixos. Nossos planos Linux VPS começam a partir de apenas $4,95/mês.
Pegue um Linux VPS econômico ou premium para hospedar seu site ou desktop remoto, com o preço mais barato disponível. VPS Executando em Linux KVM para maior eficiência e funcionando em hardware poderoso com armazenamento NVMe SSD para maior velocidade.
Ler maisConclusão
Em conclusão, dominar gerenciamento de processos e controle do sistema é essencial para administradores de sistema, entusiastas Linux que querem aprender mais e usuários regulares de Linux. Aprender sobre os recursos e funcionalidades do comando ps facilita seu aprendizado em gerenciamento de processos. Por isso, este artigo discutiu casos de uso importantes do comando ps e forneceu aos leitores uma introdução aos processos Linux.
Perguntas Frequentes
O que é o comando ps aux no Linux?
O comando ps aux Linux é um comando comumente usado no Linux para obter informações sobre processos em execução. Ele fornece uma lista abrangente de processos em um formato amigável, incluindo seus IDs de processo (PIDs), uso de CPU e memória, estados de execução e outros detalhes vitais.
Quais são dois tipos de processos no Linux?
Processos em primeiro plano e processos em segundo plano. Processos em primeiro plano ocupam o terminal enquanto executam e não permitem outras execuções. Processos em segundo plano executam em background e não ocupam todo o terminal.
Como posso visualizar a lista de processos em execução no meu sistema Linux?
A lista de processos em execução no seu sistema Linux pode ser obtida usando comandos como ps, top ou htop. Por exemplo, o comando Linux ps aux fornece informações detalhadas sobre todos os processos em execução.