Processos no Linux

Este artigo descreve de maneira básica o tão importante conceito de processos no Linux e, em seguida, mostra quais os meios mais usados para controlá-los e manipulá-los.

[ Hits: 153.846 ]

Por: Emerson Alecrim em 23/11/2005


Os recursos jobs, fg e bg, fuser, pstree, nohup



Para ter ainda mais controle sobre os processos executados no Linux, pode-se utilizar os seguintes comandos: jobs, fg e bg, fuser, pstree, nohup. Cada um é descrito a seguir:

jobs


Serve para visualizar os processos que estão parados ou executando em segundo plano (background). Quando um processo está nessa condição, significa sua execução é feita pelo kernel sem que esteja vinculada a um terminal. Em outras palavras, um processo em segundo plano é aquele que é executado enquanto o usuário faz outra coisa no sistema. Uma dica para saber se o processo está em background é verificar a existência do caractere & no final da linha. Se o processo estiver parado, geralmente a palavra "stopped" aparece na linha, do contrário, a palavra "running" é exibida. A sintaxe do jobs é:

jobs -opção

As opções disponíveis são:
  • -l - lista os processos através do PID;
  • -r - lista apenas os processos em execução;
  • -s - lista apenas os processos parados.

Se na linha de um processo aparecer o sinal positivo (+), significa que este é o processo mais recente a ser paralisado ou a estar em segundo plano. Se o sinal for negativo (-), o processo foi o penúltimo. Note também que no início da linha um número é mostrado entre colchetes. Muitos confundem esse valor com o PID do processo, mas, na verdade, trata-se do número de ordem usado pelo jobs.

fg e bg


O fg é um comando que permite a um processo em segundo plano (ou parado) passar para o primeiro (foreground), enquanto que o bg passa um processo do primeiro plano para o segundo. Para usar o bg, deve-se paralisar o processo. Isso pode ser feito pressionando-se as teclas Ctrl + Z no teclado. Em seguida, digita-se o comando da seguinte forma:

bg +número

O número mencionado corresponde ao valor de ordem informado no início da linha quando o comando jobs é usado.

Quanto ao comando fg, a sintaxe é a mesma:

fg +número

fuser


O comando fuser mostra qual processo faz uso de um determinado arquivo ou diretório. Sua sintaxe é:

fuser -opção caminho (do arquivo ou diretório)

Entre as opções, tem-se:
  • -k - finaliza o processo que utiliza o arquivo/diretório em questão;
  • -i - deve ser usada em conjunto com a opção k e serve para perguntar se a finalização do processo deve ser feita;
  • -u - mostra o proprietário do processo;
  • -v - o resultado é mostrado em um padrão de exibição semelhante ao comando ps.

pstree


Esse comando mostra processos relacionados em formato de árvore. Sua sintaxe é:

pstree -opção PID

Entre as opções, tem-se:
  • -u - mostra o proprietário do processo;
  • -p - exibe o PID após o nome do processo;
  • -c - mostra a relação de processos ativos;
  • -G - usa determinados caracteres para exibir o resultado em um formato gráfico.

Um detalhe importante: se ao digitar o comando pstree o PID não for informado, todos os processos serão listados.


nohup


O comando nohup possibilita ao processo ficar ativo mesmo quando o usuário faz logout. É da natureza dos sistemas baseados em Unix interromper processos caso seu proprietário não esteja mais ativo, por isso, o nohup pode ser muito útil. Sua sintaxe é:

nohup comando

Finalizando


Saber lidar com processos pode ser crucial para manter um computador funcionando e executando suas tarefas numa situação crítica. O assunto é essencial a administradores de sistemas, mas é importante até mesmo ao usuário doméstico. Obviamente que o controle de processos não se resume aos recursos citados aqui, uma vez que este artigo deve ser interpretado como um guia básico. Além disso, se você pretende obter algum certificado em Linux, ter conhecimento sobre o controle de processos pode lhe dar pontos significativos. Por isso, não hesite em explorar os comandos. Se quiser mais detalhes, use os recursos de ajuda, como o tradicional "man comando".

Página anterior    

Páginas do artigo
   1. Introdução
   2. Sinais de processos
   3. Comandos nice e renice
   4. Verificando processos com o ps
   5. Verificando processos com o top
   6. Os recursos jobs, fg e bg, fuser, pstree, nohup
Outros artigos deste autor

Usando cron e crontab para agendar tarefas

O gerenciador de boot GRUB

Máquina Virtual Java (Java Virtual Machine)

Leitura recomendada

APTonCD: Ubuntu Linux sem dependência de internet

Mantendo seus dados em segurança com o EncFS

Torne o seu servidor um mirror de atualização do Antivírus AVG (revisão)

Menu de Aplicativos do Window Maker

Extraindo MP3 com o ripperX

  
Comentários
[1] Comentário enviado por mascote24 em 23/11/2005 - 10:19h

Parabéns Weber, excelente artigo !

Para conhecer/saber como funcionam processos nos *nix está completo. Começar a aprender com este artigo é no mínimo começar por um bom começo.

Acrescentei-o aos meus favoritos.

[2] Comentário enviado por mms_ba em 23/11/2005 - 16:03h

Parabens pela qualidade/ conteúdo do material. :) Ja adicionei aqui nos favoritos.

[3] Comentário enviado por silviojunior em 23/11/2005 - 19:37h

Artigo de excelente qualidade!

[4] Comentário enviado por in54no em 23/11/2005 - 21:24h

Muito bom,
Parabens!

[5] Comentário enviado por Cybertitan em 24/11/2005 - 01:55h

Otimo artigo, resumiu muito bem, esta de parabens.

[6] Comentário enviado por luiscarlos em 24/11/2005 - 10:29h

Sempre percebi que a maquina depois de inciar mesmo com os serviços não essenciais todos parados, ainda rodam em médiua de 60 a 70 processos, a maioria em estado sleeping ou em espera, alguém sabe quais os processos minimos necessários para que a maquina funciona usando o mínimo de memória? eu gostaria de rodar uma console com o mínimo necessário e tmb depois rodar o KDE com o mínimo necesário, já retirei tudo que nao precisava, mas ainda tem muito processo, queria diminuir pra uns 30 no maximo

[7] Comentário enviado por xith em 24/11/2005 - 17:24h

Cara parabens pelo artigo, tirei uma duvida vital nele!
Excelente

[8] Comentário enviado por PCMasterPB em 26/11/2005 - 17:50h

Realmente muito bom esse artigo! Emerson, você está de parabéns!!!

[9] Comentário enviado por brunomark em 01/08/2006 - 19:41h

Excelente material Emerson, matéria fundamental para sobreviver no modo texto

[10] Comentário enviado por decohab em 17/10/2006 - 13:42h

Legal einh boa dica para iniciantes
Ai vai mais um bom tutorial pra galera GNU
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=4152&pagina=6

Só uma complementação a vezes até util para não deixar o SHELL preso é usar recursos em background .. util para quando se quer copiar arquivos acima de 200 megas e não se ker ficar preso esperando terminar.. basta usar no final do comando &.

ex.

# cp arquivo.xxx /home &

!!Valew!!!

[11] Comentário enviado por cassimirinho em 16/01/2008 - 13:52h

Uma pergunta sobre processos, a cada reinício do sistema o número do PID é sempre o mesmo pra cada "executável" ?

[12] Comentário enviado por stickybit em 21/01/2009 - 17:04h

Vale lembrar que, os números nice vão de -20a +19. Qualquer usuário pode iniciar um processo com um número nice positivo, mas apenas o superusuário (root) pode diminuir o número nice de um processo, aumentando com isso a sua prioridade.

[13] Comentário enviado por thiagomadeira em 04/01/2013 - 09:51h

Maninho muito bom o seu artigo, parabéns !!!

[14] Comentário enviado por removido em 23/01/2014 - 10:18h

Excelente artigo! Obrigado por compartilhar conhecimento!


Contribuir com comentário