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.910 ]

Por: Cristian Alexandre Castaldi em 24/06/2004


Terminando processos com kill e killall



kill


Pelo nome pode-se pensar que o comando kill mata aplicações. Porém, seu objetivo na verdade é enviar sinais para os processos. Há vários sinais diferentes que o kill pode enviar para um processo. Veja a lista de todos os sinais conhecidos:

# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     17) SIGCHLD
18) SIGCONT     19) SIGSTOP     20) SIGTSTP     21) SIGTTIN
22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO
30) SIGPWR      31) SIGSYS      32) SIGRTMIN    33) SIGRTMIN+1
34) SIGRTMIN+2  35) SIGRTMIN+3  36) SIGRTMIN+4  37) SIGRTMIN+5
38) SIGRTMIN+6  39) SIGRTMIN+7  40) SIGRTMIN+8  41) SIGRTMIN+9
42) SIGRTMIN+10 43) SIGRTMIN+11 44) SIGRTMIN+12 45) SIGRTMIN+13
46) SIGRTMIN+14 47) SIGRTMIN+15 48) SIGRTMAX-15 49) SIGRTMAX-14
50) SIGRTMAX-13 51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10
54) SIGRTMAX-9  55) SIGRTMAX-8  56) SIGRTMAX-7  57) SIGRTMAX-6
58) SIGRTMAX-5  59) SIGRTMAX-4  60) SIGRTMAX-3  61) SIGRTMAX-2
62) SIGRTMAX-1  63) SIGRTMAX


Podemos saber qual a função de cada sinal consultando a man page signal.

# man 7 signal

Vamos finalizar o processo correspondente ao agendador de tarefas cron. Primeiro, vamos visualizar o PID do processo:

# pgrep cron
347

Lembre-se que para visualizar o PID de um processo você pode utilizar o comando ps, top e jobs. No exemplo foi usado o comando pgrep, que é usado para saber o PID de um processo baseado no nome ou atributo. Agora que temos o numero PID do processo vamos finalizá-lo:

# kill -9 347

Agora vamos apenas parar a execução de um processo:

# pgrep inetd
13002

# kill -19 13002
# ps lax | grep inetd

140     0 13002     1   9   0  1996  708 signal T    ?          0:00 /usr/sbin/inetd

Veja que o processo correspondente ao inet foi interrompido. Agora vamos colocá-lo em execução:

# kill -18 13002
# ps lax | grep inetd

140     0 13002     1   9   0  1996  708 select S    ?          0:00 /usr/sbin/inetd

Somente o superusuário pode enviar sinais a processos de outros usuários.

killall


O killall é um comando que finaliza processos através do nome.

# ps aux | grep vi
root     13349  0.1  1.0  3016 1856 tty1     S    13:14   0:00 vi
root     13351  0.1  1.0  3016 1856 tty2     S    13:14   0:00 vi


Observe que o vi está ativo na tty1 e tty2 e que existe um número de processo para cada um. Vamos encerrá-los de uma vez só:

# killall -9 vi

Para verificar se o vi foi finalizado, podemos receber uma confirmação do sinal usando a opção -v:

# killall -v -9 vi
Killed vi(13349) with signal 9
Killed vi(13551) with signal 9

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

Trabalhando com coringas, filtros e expressões regulares no shell

Sistema de boot, níveis de execução e shutdown

Autenticando usuários

Lynis: Sistema de auditoria e segurança para Linux

Instalando e configurando o servidor Samba

Leitura recomendada

Um pouco sobre transição Windows/Linux

Usando cron e crontab para agendar tarefas

Instalação do Debian Lenny 5

Linux, aí vamos nós!

Linux no micro antigo: 4 dias de aventura e aprendizado

  
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