wiki:linux:comandos_grupos:comando_processos
Table of Contents
Gerenciamento de Processos no Linux
Nível Básico
1. Visualização de Processos Simples
- ps - Lista os processos em execução no terminal atual.
- Exemplo de uso:
ps - Descrição: Exibe os processos em execução no terminal atual com informações básicas como PID, TTY e comando.
- top - Monitora processos em tempo real.
- Exemplo de uso:
top
- Descrição: Mostra os processos em execução, uso de CPU, memória e tempo de execução em uma interface interativa em tempo real.
2. Gerenciamento Básico de Processos
- kill - Encerra um processo com base no PID.
- Exemplo de uso:
kill 1234
- Descrição: Encerra o processo com o PID 1234. Utiliza o sinal padrão (SIGTERM) para solicitar o encerramento.
- bg - Coloca um processo suspenso em segundo plano.
- Exemplo de uso:
bg %1
- Descrição: Retoma o processo suspenso
%1e o coloca em execução em segundo plano.
3. Comandos de Controle de Processos Simples
- jobs - Lista os processos em segundo plano e suspensos no shell atual.
- Exemplo de uso:
jobs - Descrição: Exibe uma lista dos processos que estão rodando em segundo plano ou suspensos no terminal atual.
- fg - Traz um processo de segundo plano para o primeiro plano.
- Exemplo de uso:
fg %1
- Descrição: Move o processo
%1do segundo plano para o primeiro plano para continuar sua execução de forma interativa.
Nível Intermediário
1. Visualização Detalhada de Processos
- ps aux - Lista todos os processos em execução no sistema com informações detalhadas.
- Exemplo de uso:
ps aux - Descrição: Exibe uma lista completa de todos os processos, incluindo aqueles que não estão associados ao terminal atual, com informações como CPU, memória e usuário que iniciou o processo.
- htop - Visualização interativa de processos com interface melhorada.
- Exemplo de uso:
htop - Descrição: Ferramenta interativa para monitorar processos em tempo real, permitindo a navegação fácil com o teclado e suporte a múltiplas opções de filtragem e ordenação.
2. Enviar Sinais para Processos
- kill -9 - Envia o sinal SIGKILL para encerrar um processo imediatamente.
- Exemplo de uso:
kill -9 1234
- Descrição: Força o encerramento imediato do processo com PID 1234. Este comando não permite que o processo execute a rotina de limpeza antes de ser finalizado.
- killall - Envia sinais para múltiplos processos com o mesmo nome.
- Exemplo de uso:
killall firefox - Descrição: Encerra todos os processos que correspondem ao nome especificado, no caso
firefox.
3. Gerenciamento de Prioridade de Processos
- nice - Inicia um processo com uma prioridade específica.
- Exemplo de uso:
nice -n 10 comando
- Descrição: Executa o
comandocom prioridade reduzida, o que permite que ele consuma menos recursos do sistema.
- renice - Altera a prioridade de um processo em execução.
- Exemplo de uso:
renice +5 1234
- Descrição: Altera a prioridade do processo com PID 1234, reduzindo sua prioridade, de forma que ele consuma menos recursos.
4. Parar e Continuar Processos
- kill -STOP - Suspende temporariamente um processo.
- Exemplo de uso:
kill -STOP 1234
- Descrição: Suspende o processo com PID 1234, parando sua execução, mas sem encerrá-lo.
- kill -CONT - Retoma a execução de um processo suspenso.
- Exemplo de uso:
kill -CONT 1234
- Descrição: Retoma a execução do processo com PID 1234 que estava suspenso.
Nível Avançado
1. Gerenciamento de Processos em Execução
- top -u - Filtra processos por um usuário específico.
- Exemplo de uso:
top -u usuario - Descrição: Exibe os processos em execução pertencentes ao usuário
usuario, permitindo monitorar apenas suas atividades.
- pgrep - Encontra processos com base em nome ou outros critérios.
- Exemplo de uso:
pgrep apache2
- Descrição: Procura o PID de todos os processos que correspondem ao nome
apache2.
2. Gerenciamento Avançado de Processos com `nohup`
- nohup - Executa um processo que continuará rodando mesmo após o encerramento do terminal.
- Exemplo de uso:
nohup comando &
- Descrição: Executa o
comandoem segundo plano, ignorando o sinal de hangup, permitindo que o processo continue rodando após a desconexão do terminal.
- disown - Remove um processo de segundo plano da lista de processos associados ao terminal.
- Exemplo de uso:
disown -h %1
- Descrição: Desassocia o processo
%1do terminal atual, para que ele não seja terminado ao fechar a sessão.
3. Gerenciamento de Processos em Múltiplas Máquinas
- pssh - Executa comandos de forma paralela em várias máquinas via SSH.
- Exemplo de uso:
pssh -h hosts.txt -l usuario comando
- Descrição: Executa o
comandoem todas as máquinas listadas no arquivohosts.txt, utilizando o usuáriousuariopara acesso SSH.
- parallel-ssh - Executa comandos simultaneamente em múltiplos servidores.
- Exemplo de uso:
parallel-ssh -h servidores.txt df -h
- Descrição: Executa o comando
df -hem todos os servidores listados no arquivoservidores.txt, exibindo o uso de disco em cada servidor.
4. Debug e Análise de Processos
- strace - Rastreia chamadas de sistema feitas por um processo.
- Exemplo de uso:
strace -p 1234
- Descrição: Anexa ao processo com PID 1234 e exibe todas as chamadas de sistema que o processo está fazendo, útil para debug.
- lsof - Exibe arquivos abertos e portas de rede usadas por processos.
- Exemplo de uso:
lsof -i :80
- Descrição: Mostra todos os processos que estão usando a porta 80, normalmente para identificar servidores web ativos.
5. Controle de Recursos por Processo
- cgroups - Controla e limita o uso de recursos de um grupo de processos.
- Exemplo de uso:
cgcreate -g memory,cpu:/meugrupo
- Descrição: Cria um grupo de controle
meugrupocom limites de uso de CPU e memória. Este grupo pode ser usado para limitar recursos de processos específicos.
- systemd-run - Executa um processo sob um escopo gerenciado por systemd.
- Exemplo de uso:
systemd-run --scope -p MemoryMax=500M comando
- Descrição: Executa o
comandocom um limite máximo de uso de memória de 500 MB, gerenciado pelo systemd.
Nível Especializado
1. Controle Avançado de Processos com `cgroups`
- cgexec - Executa processos em grupos de controle (cgroups) específicos.
- Exemplo de uso:
cgexec -g cpu,memory:/meugrupo comando
- Descrição: Executa o
comandodentro do cgroupmeugrupo, que possui restrições de CPU e memória pré-definidas, garantindo controle sobre o uso de recursos.
- cgset - Ajusta os parâmetros de cgroups em tempo real.
- Exemplo de uso:
cgset -r memory.limit_in_bytes=512M /meugrupo
- Descrição: Ajusta dinamicamente o limite de memória do cgroup
meugrupopara 512 MB, afetando todos os processos executados dentro deste grupo.
2. Manipulação Especializada de Processos com `systemd`
- systemctl isolate - Coloca o sistema em um estado ou alvo específico.
- Exemplo de uso:
systemctl isolate rescue.target
- Descrição: Transfere o sistema para o modo de resgate, terminando a maioria dos processos normais e mantendo apenas o essencial para manutenção.
- systemctl kill - Envia sinais a processos gerenciados pelo systemd.
- Exemplo de uso:
systemctl kill --kill-who=all apache2.service
- Descrição: Envia sinais de término para todos os processos relacionados ao serviço
apache2gerenciado pelo systemd.
3. Limitação de I/O com `ionice`
- ionice - Controla a prioridade de operações de entrada/saída de disco para processos.
- Exemplo de uso:
ionice -c2 -n7 comando
- Descrição: Executa o
comandocom prioridade baixa para operações de I/O no disco, minimizando seu impacto no sistema.
- ionice + renice - Combina controle de I/O e prioridade de CPU.
- Exemplo de uso:
ionice -c2 -n7 renice +10 1234
- Descrição: Ajusta a prioridade de I/O e de CPU para o processo com PID 1234, garantindo que ele consuma poucos recursos de CPU e disco.
4. Gerenciamento de Processos em Containers
- docker run - Inicia processos em containers Docker.
- Exemplo de uso:
docker run --rm -d --name app_container app_imagem
- Descrição: Inicia um processo em um container isolado com base na imagem
app_imagem, permitindo que o processo seja executado de forma independente do sistema host.
- docker stats - Monitora o uso de recursos por processos em containers.
- Exemplo de uso:
docker stats app_container
- Descrição: Exibe o uso de CPU, memória, I/O e rede de todos os processos em execução dentro do container
app_containerem tempo real.
5. Execução de Processos Distribuídos
- Ansible - Orquestra processos em múltiplos servidores.
- Exemplo de uso:
ansible -i hosts all -m shell -a 'comando'
- Descrição: Executa o
comandoem todos os servidores listados no arquivohosts, orquestrando processos de forma paralela em uma infraestrutura distribuída.
- Kubernetes - Gerencia processos em containers distribuídos.
- Exemplo de uso:
kubectl run app --image=app_imagem --replicas=3
- Descrição: Executa o processo em três réplicas de containers, distribuindo a carga entre múltiplos nós do cluster Kubernetes.
6. Monitoração Avançada de Processos
- atop - Ferramenta avançada para monitoramento detalhado de processos e recursos.
- Exemplo de uso:
atop
- Descrição: Exibe estatísticas detalhadas de uso de CPU, memória, disco e rede por processo em tempo real, permitindo a análise de desempenho.
- perf - Ferramenta de análise de performance de processos.
- Exemplo de uso:
perf stat -p 1234
- Descrição: Coleta e exibe métricas detalhadas de desempenho do processo com PID 1234, como número de ciclos de CPU, cache miss e outras métricas de hardware.
wiki/linux/comandos_grupos/comando_processos.txt · Last modified: by Wiki Administrator
