Você tem pelo menos cinco outras guias abertas em seu navegador, tentando encontrar a resposta para um problema de Linux que você encontrou?
Este comportamento não é específico para você ou para os humanos em geral. As máquinas também realizam multitarefas. E assim como você, o Linux também é multitarefa e possui vários processos acontecendo ao mesmo tempo. Quer você seja um desenvolvedor que usa Linux profissionalmente ou um usuário normal que trabalha com Linux em suas atividades diárias, você deve ser capaz de compreender esses processos paralelos para manter controle total sobre seu sistema. O gerenciamento de processos e o controle do sistema são aspectos essenciais da execução de um sistema Linux.
Para gerenciar com eficiência os processos em execução no sistema, ver o que está acontecendo em tempo real, ter uma ideia geral de todos os processos em segundo plano e controlar os recursos do sistema, você precisa de conhecimento técnico de gerenciamento de processos. O comando ps aux é um comando poderoso que desempenha um papel vital no gerenciamento de processos e controle do sistema. Nesta postagem, aprenderemos mais sobre o comando ps aux e seus casos de uso. Também abordaremos os fundamentos de como funcionam os processos do Linux.
Compreendendo o gerenciamento de processos no Linux
Ao trabalhar com Linux, a maioria de nossas interações com o sistema ocorre na forma de comandos. No Linux, um processo é a execução de um comando. O gerenciamento de processos do Linux envolve a manipulação dos processos iniciados por um comando. Você pode encerrar um processo, iniciar um processo ou retomar os processos que foram encerrados. 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 do Linux
Um processo em primeiro plano é um processo que está sendo executado ativamente e normalmente 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 pode executar nenhum outro comando. Um processo em primeiro plano recebe entrada do teclado como entrada padrão ou stdin. Para evitar mais confusão, stdin e stdout são fluxos de dados do Linux junto com stderr. É basicamente como o usuário interage com o processo e fornece dados para ele. Há uma saída padrão ou stdout produzida pelo processo com base em sua funcionalidade e na entrada. Os processos em primeiro plano são o modo de execução padrão no Linux.
Processos em segundo plano do Linux
Os processos em segundo plano são exatamente o oposto 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 geralmente não aceitam stdin. No entanto, os resultados do processo podem ser exibidos como stdout. A exibição da saída dos processos em segundo plano acontece simultaneamente com a saída de outros processos em primeiro plano. Assim, você pode ver o progresso ou os resultados do processo em segundo plano sem interromper outras ações importantes.
Como a execução de uma ampla variedade de tarefas no Linux depende da linha de comando, os processos em primeiro plano podem ser problemáticos, enquanto a execução de processos em segundo plano libera seu terminal de trabalhar em outras tarefas. Portanto, colocar uma tarefa em primeiro plano em segundo plano é uma coisa razoável a se fazer aqui. A fim de enviar um processo para segundo plano você deve primeiro impedir que ele seja executado em primeiro plano. Isso é feito simplesmente pressionando CTRL+Z. Em seguida, digitando o comando bg, o processo encerrado será executado novamente em segundo plano. O comando fg reverterá o processo e o trará para o primeiro plano.
Status do Processo; Sintaxe, comandos e interpretação da saída
O gerenciamento eficaz de processos no Linux requer a compreensão do status dos processos que podem ser monitorados pelo comando ps aux. Mas antes de nos aprofundarmos no comando ps aux, vamos aprender sobre os diferentes status do processo. Embora existam vários tipos de processos e status de processos, aqui está uma tabela dos mais comuns:
| Status do processo | descrição | |
| Correndo(R) | O processo está em execução e consumindo recursos da CPU. | |
| Dormindo | Interrompível (S) | O processo está aguardando uma entrada ou evento específico para começar a ser executado novamente. Atualmente não está usando recursos da CPU. Quando os recursos estão disponíveis ou os sinais são dados, o processo recomeça. |
| Ininterrupto (D) | Assim como um processo em suspensão interrompível, um processo em suspensão ininterrupta não usa recursos da CPU. A única diferença é que não reage aos sinais, só volta à vida quando os 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 usa nenhum recurso da CPU. | |
| Morto(X) | O processo foi encerrado e não existe mais. | |
Uma boa compreensão desses status de processo é um aspecto crucial para gerenciar e solucionar problemas de sistemas Linux de maneira eficaz. Agora, vamos abordar a sintaxe e os comandos para obter o status do processo no Linux, bem como interpretar a saída.
Sintaxe e comandos para obter status do processo
Você pode obter o status do processo no Linux com a sintaxe básica do comando ps:
ps [process name]
Existem também outras opções usadas com o comando ps:
auxiliar: Esta opção mostra uma lista abrangente de todos os processos em execução no sistema. Ele fornece informações como IDs de processo (PIDs), IDs de processos pais (PPIDs), uso de CPU e memória e status de processos. A saída fornecida pelo comando ps aux é muito mais organizada, tem mais legibilidade e contém muito mais informações úteis do que o comando ps básico.
ef: Esta opção mostra uma lista completa de processos com detalhes extras, incluindo a hierarquia do processo como uma estrutura semelhante a uma árvore.
l: Esta opção fornece um formato de listagem longo, apresentando informações mais detalhadas sobre os processos.
Compreendendo a saída
Ao executar o comando ps com as opções desejadas, ele gera uma saída que representa os processos atualmente em execução em seu sistema. A saída consiste em colunas que mostram diferentes atributos do processo, incluindo 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 exclusivo do processo.
TTY: Esta coluna mostra o tipo de terminal no qual o usuário efetuou login.
TEMPO: Esta coluna é um indicador de quanta CPU é utilizada por este processo em minutos e segundos.
DMC: Esta coluna representa o nome do comando que iniciou este processo.
A análise das informações fornecidas pelo comando ps fornece uma visão mais profunda do comportamento da sua máquina Linux.
Técnicas avançadas de 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 classificar a saída final com base em diferentes colunas. Por exemplo, você pode classificar processos por ID de processo ou uso de CPU para vê-los na ordem desejada.
Aqui está um exemplo de classificação de processos com base no ID do processo usando ps aux:
ps aux –-sort pid
O comando head é usado para obter apenas as cinco primeiras linhas da saída.

2. Visualização da árvore de processos
Se quiser ver claramente o relacionamento pai-filho dos processos, você pode usar o comando ps com a opção florestal.
ps -aux --forest

Para ver o relacionamento entre os 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 comando:
pstree [pid or username]
Ao atribuir um PID a este comando, você diz ao comando para considerar esse processo como a raiz da árvore.
3. Processos de filtragem
Imagine que você deseja trabalhar com um grupo específico de processos; por exemplo, você deseja listar todos os processos de um dos usuários. A filtragem de processos com base em uma característica pode ser feita usando o comando ps. Neste exemplo, filtramos os processos com base no nome de usuário.
ps -u [username]

E o comando ps aux grep pode filtrar os processos com base em qualquer padrão ou palavra-chave fornecida ao comando. Dê uma olhada no código abaixo como exemplo:

Este comando primeiro lista todos os processos e entrega a saída ao comando grep para filtrar essa longa lista com base no ID do processo. Na imagem acima você confere uma lista de todos os processos que possuem o número 15 em suas informações.
Para obter mais informações sobre o comando ps e seus recursos, você pode ler a página de manual deste comando. O código abaixo exibirá a página de manual para você:
man ps
Gerenciando prioridade de tarefas no Linux
Para explicar melhor como o gerenciamento de processos realmente funciona no Linux, devemos também abordar a prioridade do processo e como alterá-la. Imagine uma situação em que você está executando vários processos e a CPU está sobrecarregada de tarefas. Se quiser gerenciar seus recursos para funcionarem corretamente nesta situação, você precisa alterar 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 em comparação com outros processos. Os valores de prioridade são frequentemente chamados de valores “agradáveis”, com valores agradáveis mais baixos mostrando prioridade mais alta.
Você pode usar comandos nice e renice para alocar recursos do sistema com eficiência.
Mas 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 comandos e a prioridade atual (valor legal):
ps -eo pid,cmd,nice

- Iniciando um processo com alta prioridade padrão usando o comando nice:
Você pode iniciar um processo com sua prioridade preferida usando este comando:
nice -n [priority] [command]
Substitua [priority] pelo valor negativo desejado que representa o nível de prioridade e [command] pelo comando que deseja executar.
Aqui está um exemplo:

- 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ê deseja ter uma máquina Linux poderosa para realizar todos os tipos de tarefas, um VPS Linux é a melhor solução para você. Cloudzy oferece vários planos Linux VPS com sua distribuição preferida pré-instalada. Com muitas características vantajosas, como suporte 24 horas por dia, 7 dias por semana, política de devolução do dinheiro em 30 dias e garantia de tempo de atividade de 99,95%, Cloudzy conseguiu manter os preços baixos. Nossos preços para Linux VPS começam em apenas US$ 4,95/mês.
Obtenha um VPS Linux econômico ou premium para hospedar seu site ou desktop remoto, pelo preço mais barato do mercado. VPS rodando em Linux KVM para maior eficiência e trabalhando em hardware poderoso com armazenamento SSD NVMe para maior velocidade.
Leia maisConclusão
Concluindo, dominar o gerenciamento de processos e o controle do sistema é essencial para administradores de sistema, entusiastas do Linux que desejam aprender mais e usuários regulares do Linux. Aprender sobre os recursos e funcionalidades do comando ps pode facilitar seu aprendizado no gerenciamento de processos. É por isso que este artigo discutiu casos de uso importantes do comando ps, além de fornecer aos leitores uma introdução aos processos do Linux.
Perguntas frequentes
Qual é 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 pode fornecer 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 os dois tipos de processos no Linux?
Processos em primeiro plano e processos em segundo plano. Os processos em primeiro plano ocupam o terminal durante a execução e não permitem outras execuções. Os processos em segundo plano são executados em segundo plano 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 para visualizar. Por exemplo, o comando ps aux do Linux fornece informações detalhadas sobre todos os processos em execução.