Criando, monitorando e terminando processos

Este artigo descreve como o administrador de sistemas pode gerenciar os processos do sistema de forma sucinta e prática. Faz uma abordagem clara dos comandos usados para o gerenciamento de processos: ps, pstree, top, kill, killall, bg, fg, jobs, pgrep, nice, renice e nohup.

[ Hits: 206.846 ]

Por: Cristian Alexandre Castaldi em 24/06/2004


Controlando tarefas com bg, fg e jobs



bg


O comando bg permite que um programa rodando em primeiro plano ou parado, rode em segundo plano (background), liberando o shell para outras atividades. Existem 3 maneiras diferentes de colocar um programa em background, veja os exemplos:

Inicie o vi e depois pressione as teclas Ctrl+Z, o vi é interrompido e colocado em segundo plano.

# vi
[1]+  Stopped                 vi


Agora faça o seguinte:

# top &
[2] 1130

O caracter "&" colocou o top para ser executado em segundo plano, vamos ao último exemplo:

Vamos executar a man page do comando du:

# man du

Agora interrompa a sua execução pressionando as teclas Ctrl+Z:

# man du
[3]+  Stopped                 man du


Agora use o comando bg da seguinte maneira:

# bg 3
bg 3
[3]+ man du &

Mas por que colocar os processos em segundo plano?

Imagine que você esteja consultando uma man page de um determinado comando e deseja utilizar uma de suas opções, muitos sairiam da man page ou abririam outro terminal, felizmente não precisamos fazer isso, usando as opções para colocar as tarefas em segundo plano faremos tudo no mesmo terminal. Ou seja, o Linux lhe oferece a oportunidade de executar outros processos sem que você tenha de parar o que estava fazendo.

O processo foi colocado em background, agora vamos visualizar estes processos para colocarmos eles para rodarem em primeiro plano.

jobs


O comando jobs mostra os processos que estão parados ou rodando em segundo plano.

Vamos listar os processos que estão em segundo plano:

# jobs -l
[1]   1129 Parado                  vi
[2]-  1130 Parado (saída tty)      top
[3]+  1192 Parado (saída tty)      man du


Observe a saída do comando, foram listados os números dos processos, os PIDs e o estdos dos processos. Agora com essa informação vamos colocar os processos em segundo plano para rodar em primeiro plano.

fg


O comando fg permite que um programa rodando ou parado em segundo plano rode em primeiro plano.

Podemos colocar os programas que estão sendo executados em segundo plano para rodar em primeiro usando o nome do programa que queremos rodar ou o número da tarefa que ele representa no comando jobs. Neste exemplo vamos startar o vi, o seu número de tarefa é 1, veja os exemplos:

# fg vi
ou
# fg 1

Observe que o vi agora está rodando em primeiro plano ou em foreground, podemos fazer isso com todos os outros processos que estão em segundo plano ou background.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Processos
   3. Monitorando processos com ps, pstree e top
   4. Terminando processos com kill e killall
   5. Controlando tarefas com bg, fg e jobs
   6. Modificando as prioridades de execução dos processos
   7. Bibliografia
Outros artigos deste autor

Servidor CVS: Instalando, configurando e gerenciando no Linux

Lynis: Sistema de auditoria e segurança para Linux

Gerenciando quotas de disco

Trabalhando com shell e variáveis de ambiente

Instalando e configurando o servidor Samba

Leitura recomendada

TDE no openSUSE

Iniciar no Linux sem medo

Introdução ao Gentoo Linux

Processos no Linux

Melhores Distribuições Linux Voltadas Para Servidores

  
Comentários
[1] Comentário enviado por fabio em 24/06/2004 - 00:56h

Muito bom o artigo! Até para os administradores de sistemas com maior experiência ele tem algo a acrescentar, pois está rico em detalhes. E vale lembrar que são esses tipos de detalhes que compõem as questões de provas para certificação Linux, como por exemplo, comandos alternativos e pouco usados como pstree, fg, bg, teclas de atalho do top, etc.

[]'s

[2] Comentário enviado por quinho_k em 24/06/2004 - 10:21h

Uma pequena observaçao: o estado "Z" do processo significa "zombie", zumbi mesmo. O processo está semi-morto, mas não terminado. Normalmente é um problema matá-lo (ele já está morto , sacou? ;), e muitas vezes a solução é terminar o processo-pai pra acabar com o problema...
no mais, mto bom o artigo =)
parabéns

[3] Comentário enviado por agk em 24/06/2004 - 21:16h

Parabéns excelente artigo, muito bem estrutura, de fácil entendimento. Realmente me ajudará muito a trabalhar com processos.

[4] Comentário enviado por camilozero em 25/06/2004 - 01:19h

um processo ZUMBI pode ainda ser morto (novamente)
usando o comando kill -9 <PID do pporcesso>
onde o PID do processo eh um valor que vc pega
usando o comando ps ...
o artigo tah show de bola!

[5] Comentário enviado por flipe em 03/07/2004 - 14:20h

Esse tipo de documento é sempre uma boa.. pois são coisas q ñ se acham em abundância.... principalmente em português. E desta qualidade é simplemente sensacional... uma dica é q vc continue atualizando este doc... ele é muito bom.....

[6] Comentário enviado por Xxoin em 09/02/2005 - 01:10h

Outra grande utilidade deste artigo é auxiliar na análise de LOG's em programas que "vivem dando pau".

[7] Comentário enviado por gpr.ppg.br em 09/07/2006 - 11:43h

eu uso o linux com o programa x0rfbserver que é igual ao vnc + as vezes ele fecha sozinho. como faço para ele sempre ficar ligado.
ou quando ele desligar sozinho.. ligar automaticamente de novo?

abraços,
gpr.

[8] Comentário enviado por andersoncw em 02/01/2013 - 16:49h

Muito bons exemplos para demonstrar a utilização dos comandos bg, fg e jobs. 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