Gerenciamento de processos no GNU/Linux

Publicado por Alvaro Alves em 18/11/2013

[ Hits: 31.277 ]

 


Gerenciamento de processos no GNU/Linux



Em uma tarefa diária de um administrador, sempre foram necessários conhecimentos sobre os processos no Linux. Este tutorial é bem direto ao ponto, sobre o que um administrador Linux precisa saber!

O Linux é um programa monotarefa, mas com time shared (tempo de execução compartilhado). Processos são programas em execução, processo zumbi é quando o processo pai morre.

Todo processo, possui:
  • Espaço de endereçamento de memória;
  • Variáveis de ambiente;
  • Lista de arquivos abertos;
  • Um número que o identifica, conhecido como PID;
  • Um processo pai (parent) identificado pelo PPID;
  • Identificação de usuário e grupo.

Um processo tem uma ou mais linhas de execução (threads). Existem processos com maior e menor prioridade. Na hierarquia de processos, dizemos que o processo que chama o outro é o processo pai, enquanto o novo, é o processo filho.

A única forma de criar um processo novo no Linux, é através da chamada de sistema fork().

Rodar um programa na verdade é um fork seguido de uma chamada de sistema execl.

Toda vez que se cria um processo, na verdade, o sistema está fazendo um fork, que nada mais é do que uma interface programática para acessar os recursos e/ou serviços no kernel do sistema operacional

Processos - criação

Os programas, usualmente, são de 2 tipos:

Binários :: Instruções em linguagem de máquina. Ex.: ELF. Scripts :: Arquivos de comando (1º linha do tipo !/bin/bash, ou !/usr/bin/pearl).

Comandos:

# ps   # Visualiza os processos em execução
# ps -a   # Exibe processos de outros usuários também
# ps -u   # Exibe os processos detalhadamente inclusive com uso de memória
# ps -x   # Exibe os processos que não estão vinculados a terminais
# ps -ef   # Exibe todos os processos e mostra o PPID
# top   # Exibe os processos que utilizam CPU em tempo real
# top -d   # Exibe os processos que utilizam CPU em tempo real com atualização de 1 seg
# kill -9 (processo)   # Mata um processo
# kill -l   # Mostra as opções do comando kill

CRTL-Z   # Coloca um processo em segundo plano

# fg (nº)   # Coloca um processo em primeiro plano
# jobs   # Lista processos que estão em segundo plano

Para executar diretamente em segundo plano, utilizar & no final.

Processos - prioridade

Dependendo da importância dos processos, pode-se criar processos com maior e menor prioridade.

Além disso, é possível alterar a prioridade de um processo, mesmo depois dele já ter sido criado e estar sendo executado:

# nice -n (-20 a +19) programa   # Roda o programa com a prioridade desejada
# renice (-20 a +19) processo   # Permite alterar a prioridade do programa estando em execução

A prioridade vai de -20 (maior) até +19 (menor).

Quando iniciamos um programa com o comando nice, sua prioridade é igual a +10.

Se executamos o programa normalmente, sua prioridade será igual a zero.

Processos - memória

Para os processos, a memória é linear e começa do zero.

Na memória física, o processo pode estar em páginas não sequenciais, em qualquer lugar da memória. Se houver pouca memória para executar os processos, pode-se utilizar a memória SWAP.

Quando a memória física acaba, o sistema grava na SWAP as páginas de memória menos acessadas, abrindo espaço para novas páginas.


É isso por hoje, direto ao ponto e sem muitos segredos, esperamos que vocês aproveitem as dicas.

Abraços,
Equipe Mundo Open

Outras dicas deste autor

Tutorial de Squid - CentOS 6.5

Estrutura de diretórios do GNU/Linux

História do Linux - 1991 a 2003

Syslog - Gerenciamento de logs do sistema

Antivírus com Samba - Servidor de Arquivos

Leitura recomendada

Criar imagens GD2 para statusmap do Nagios

Criando um Pen Drive Bootável no Linux

Nokia 6101 no Linux com Gnokii - Configure seu aparelho celular

Instalando Jenkins no Rocky Linux

Resolver problemas do Google Earth 7 no Linux 32 bits

  

Comentários
[1] Comentário enviado por removido em 18/11/2013 - 11:17h

Ótima dica! Favoritado.

Estava mesmo querendo gerenciar alguns processos e não conheço todos os comandos para isso.

[2] Comentário enviado por removido em 18/11/2013 - 17:38h

Texto simples, claro e objetivo. Parabéns !



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts