ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

17
06/04/2003 - Por: Ielton Ferreira Carneiro Pinto GERENCIANDO PROCESSOS INDEX 1 ........... O QUE SÃO PROCESSOS? 2 ........... USANDO ps . 3 ........... USANDO pstree. 4 ........... USANDO lsof. 5 ........... USANDO fuser. 6 ........... USANDO top. 7 ........... USANDO kill. 8 ........... USANDO killall. 9 ........... USANDO killall5. 10 .......... USANDO nohup. 11 .......... PARANDO E CANCELANDO A EXECUÇÃO DE UMA APLICAÇÃO EM PRIMEIRO PLANO. 12 .......... USANDO jobs. 13 .......... COLOCANDO UM PROGRAMA EM SEGUNDO PLANO (BACKGROUND) . 14 .......... COLOCANDO UM PROGRAMA EM PRIMEIRO PLANO (FOREGROUND). 15 .......... PRIORIDADE DOS PROCESSOS. 16 .......... USANDO nice . 17 .......... USANDO renice. 1. O QUE SÃO PROCESSOS? Nos sistemas GNU/Linux assim como no Unix, um programa rodando no sistema é chamado de processo, quando você executa um programa o sistema dá uma identidade para ele, essa identidade é chamada de PID (Proccess IDentify, traduzido é: Identidade do Processo), essa identidade é dada na forma numeral, veja o exemplo: ---------> Identidade do Processo. | V USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND teste 1029 0.0 1.2 5088 3136 ? S 15:03 0:02 /usr/X11R6/bin/wmaker teste 1051 0.0 0.4 2656 1200 ? S 15:03 0:00 wmCalClock teste 1052 0.0 0.4 2936 1172 ? S 15:03 0:00 mount.app teste 1053 0.0 0.3 2260 852 ? S 15:03 0:00 wmppp teste 1054 0.0 0.3 2304 932 ? S 15:03 0:00 wmmon teste 1055 0.0 0.4 2416 1084 ? S 15:03 0:00 wmfire teste 1056 0.0 0.8 4696 2228 ? S 15:03 0:00 wmxmms teste 1057 0.0 0.3 2268 852 ? S 15:03 0:00 wmifs teste 1060 0.0 0.1 1288 392 ? S 15:03 0:00 fireload_cpu teste 1100 0.3 4.5 20768 11284 ? S 15:54 0:06 konsole

description

Uploaded from Google Docs

Transcript of ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

Page 1: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

06/04/2003 - Por: Ielton Ferreira Carneiro Pinto

  GERENCIANDO PROCESSOS

  INDEX

1...........O QUE SÃO PROCESSOS?2...........USANDO ps. 3...........USANDO pstree.4...........USANDO lsof.5...........USANDO fuser.6...........USANDO top.7...........USANDO kill.8...........USANDO killall.9...........USANDO killall5.10..........USANDO nohup.11..........PARANDO E CANCELANDO A EXECUÇÃO DE UMA APLICAÇÃO EM PRIMEIRO PLANO.12..........USANDO jobs.13..........COLOCANDO UM PROGRAMA EM SEGUNDO PLANO (BACKGROUND). 14..........COLOCANDO UM PROGRAMA EM PRIMEIRO PLANO (FOREGROUND).15..........PRIORIDADE DOS PROCESSOS. 16..........USANDO nice. 17..........USANDO renice.

1. O QUE SÃO PROCESSOS?

Nos sistemas GNU/Linux assim como no Unix, um programa rodando no sistema é chamado de processo, quando você executa um programa o sistema dá uma identidade para ele, essa identidade é chamada de PID (Proccess IDentify, traduzido é: Identidade do Processo), essa identidade é dada na forma numeral, veja o exemplo:

         ---------> Identidade do Processo.          |          V USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND teste 1029 0.0 1.2 5088 3136 ? S 15:03 0:02 /usr/X11R6/bin/wmaker teste 1051 0.0 0.4 2656 1200 ? S 15:03 0:00 wmCalClock teste 1052 0.0 0.4 2936 1172 ? S 15:03 0:00 mount.app teste 1053 0.0 0.3 2260 852 ? S 15:03 0:00 wmppp teste 1054 0.0 0.3 2304 932 ? S 15:03 0:00 wmmon teste 1055 0.0 0.4 2416 1084 ? S 15:03 0:00 wmfire teste 1056 0.0 0.8 4696 2228 ? S 15:03 0:00 wmxmms teste 1057 0.0 0.3 2268 852 ? S 15:03 0:00 wmifs teste 1060 0.0 0.1 1288 392 ? S 15:03 0:00 fireload_cpu teste 1100 0.3 4.5 20768 11284 ? S 15:54 0:06 konsole teste 1102 0.0 2.7 18184 6868 ? S 15:54 0:00 kdeinit: Running... teste 1105 0.0 2.9 18520 7292 ? S 15:54 0:00 kdeinit: dcopserver --nosid --suicide teste 1108 0.0 3.2 19260 7988 ? S 15:54 0:00 kdeinit: klauncher teste 1110 0.0 3.6 19384 9168 ? S 15:54 0:00 kdeinit: kded teste 1114 0.0 0.6 2776 1552 pts/0 S 15:54 0:00 /bin/bash teste 1120 0.0 4.3 22216 10712 ? S 15:54 0:00 kdeinit: knotify teste 1182 0.1 1.5 8632 3800 pts/0 S 15:59 0:02 vi gerenciando_processos teste 1285 0.0 0.6 2776 1556 pts/1 S 16:15 0:00 /bin/bash teste 1406 0.0 0.3 2588 768 pts/1 R 16:28 0:00 ps ux

*Importante! Um processo que executa um segundo processo é chamado de processo pai, e o segundo processo é chamado de

Page 2: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

processo filho. *É importante que você saiba que os dispositivos são gerenciados pelo kernel.

2. USANDO ps.

O comando ps serve para listar os processos ativos no sistema, no exemplo acima eu usei o comando ps em conjunto com as opções aux, agora você vera como usa-lo.

PARÂMETRO:

ps [opções]

Opções:

--------------------------------------------------------------------Opção O que faz? --------------------------------------------------------------------l Mostra a lista de processos em formato longo. a Mostra todos os processos. x Mostra processos não associados a um terminal. f Mostra no formato de árvores da família na linha de comando. u Mostra no formato de usuário: fornece o nome do usuário e o horáriode início do processo. n Lista em formato numérico para USER e WCHAN. --------------------------------------------------------------------

Exemplo de uso do comando ps:

[root@teste /teste]# ps ux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND teste 1029 0.0 1.2 5088 3140 ? S 15:03 0:03 /usr/X11R6/bin/wmaker teste 1051 0.0 0.4 2656 1200 ? S 15:03 0:00 wmCalClock teste 1052 0.0 0.4 2936 1172 ? S 15:03 0:00 mount.app teste 1053 0.0 0.3 2260 852 ? S 15:03 0:00 wmppp teste 1054 0.0 0.3 2304 932 ? S 15:03 0:00 wmmon teste 1055 0.0 0.4 2416 1084 ? S 15:03 0:00 wmfire teste 1056 0.0 0.8 4696 2228 ? S 15:03 0:00 wmxmms teste 1057 0.0 0.3 2268 852 ? S 15:03 0:00 wmifs teste 1060 0.0 0.1 1288 392 ? S 15:03 0:00 fireload_cpu teste 1100 0.1 4.6 20972 11536 ? S 15:54 0:16 konsole teste 1102 0.0 2.7 18184 6868 ? S 15:54 0:00 kdeinit: Running... teste 1105 0.0 2.9 18520 7292 ? S 15:54 0:00 kdeinit: dcopserver --nosid --suicide teste 1108 0.0 3.2 19260 7988 ? S 15:54 0:00 kdeinit: klauncher teste 1110 0.0 3.6 19384 9168 ? S 15:54 0:00 kdeinit: kded teste 1114 0.0 0.6 2776 1556 pts/0 S 15:54 0:00 /bin/bash teste 1120 0.0 4.3 22216 10712 ? S 15:54 0:01 kdeinit: knotify teste 1285 0.0 0.6 2896 1668 pts/1 S 16:15 0:00 /bin/bash teste 1519 0.1 1.5 8632 3804 pts/0 S 18:28 0:02 vi gerenciando_processos teste 1634 0.0 0.6 2768 1524 pts/2 S 18:44 0:00 /bin/bash teste 1666 0.0 0.3 1764 776 pts/1 S 18:50 0:00 man ps teste 1669 0.0 0.4 2364 1008 pts/1 S 18:50 0:00 sh -c (cd /usr/share/man/pt_BR && (echo "

teste 1670 0.0 0.4 2376 1056 pts/1 S 18:50 0:00 sh -c (cd /usr/share/man/pt_BR && (echo "

teste 1674 0.0 0.4 2380 1084 pts/1 S 18:50 0:00 /bin/sh /usr/bin/nroff -mandoc teste 1675 0.0 0.3 1876 776 pts/1 S 18:50 0:00 /usr/bin/less -is

Page 3: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

teste 1678 0.0 0.2 1792 700 pts/1 S 18:50 0:00 groff -S -Wall -mtty-char -Tlatin1 -mando teste 1680 0.0 0.3 2004 900 pts/1 S 18:50 0:00 grotty teste 1702 0.0 0.3 2596 776 pts/2 R 18:55 0:00 ps ux

*Para mais informações sobre o comando ps favor consultar a página manual do mesmo.

3. USANDO pstree.

Mostra os processos ativos no sistema na forma de árvore. Veja o parâmetro do comando pstree:

pstree [opções] [pid]

*Se você omitir, o pid será listado todos os processos.

Algumas opções:

--------------------------------------------------------------------Opção O que faz? ---------------------------------------------------------------------a Mostra argumentos passados na linha de comando. -c Mostra a lista de processos ativos no sistema (inclusive sub-processos do processo pai.) -G Usa caracteres gráficos no desenho da árvore de processos. -u Mostra o dono do processo. -p Mostra o PID entre parênteses após o nome do processo. --------------------------------------------------------------------

Exemplo:

[root@teste /teste]# pstree -up init(1)-+-atd(796,daemon) |-crond(816) |-gpm(871) |-kapmd(3) |-kdm(914)-+-X(917) | `-kdm(918)---wmaker(935,isk)-+-aterm(1095)---bash(1096) | |-mount.app(955) | |-tload(1094) | |-wmCalClock(954) | |-wmfire(958)---fireload_cpu(96+ | |-wmifs(960) | |-wmmon(957) | |-wmppp(956) | `-wmxmms(959) |-keventd(2) |-khubd(134) |-kjournald(16) |-kjournald(281) |-klogd(678) |-login(908)---bash(964,isk)---vi(1264) |-login(909)---bash(978)---vi(992) |-login(1745)---bash(1746,teste)---pstree(1761) |-mdrecoveryd(8) |-mingetty(911) |-mingetty(912) |-mingetty(913) |-named(700,named)---named(702)-+-named(703) | |-named(704) | `-named(705)

Page 4: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

|-portmap(646,bin) |-squid(892)---squid(1742,proxy) |-syslogd(666) `-vi(1049)

*Para mais informações leia a página manual do comando pstree.

4. USANDO lsof.

O comando lsof (List Open Files) lista arquivos abertos.

Qual a utilidade desse comandos?

Com o comando lsof você podera ver os arquivos de um determinado processo, sabera os arquivos que estão abertos por um deter- minado usuário. Veja o parâmetro do comando lsof:

lsof [opções]

Opções:

--------------------------------------------------------------------Opção O que faz? ---------------------------------------------------------------------u usuário Mostra arquivos abertos por um determinado usuário. -p PID Mostra arquivos abertos por um determinado processo. -i [protocolo] ip :porta Mostra todos arquivos associados a um endereço ip. -n Mostra em forma númerica (sem resolução de nomes).--------------------------------------------------------------------

Exemplo:

[root@teste root]# lsof -i :1-53 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME named 698 named 11u IPv4 1057 UDP localhost.localdomain:domain named 698 named 12u IPv4 1058 TCP localhost.localdomain:domain (LISTEN) named 698 named 13u IPv4 1059 UDP comp1.info.skull:domain named 698 named 14u IPv4 1060 TCP comp1.info.skull:domain (LISTEN) named 698 named 17u IPv4 60844 UDP 133.2-254.29.217.200.telemar.net.br:domain named 698 named 18u IPv4 60845 TCP 133.2-254.29.217.200.telemar.net.br:domain (LISTEN) named 700 named 11u IPv4 1057 UDP localhost.localdomain:domain named 700 named 12u IPv4 1058 TCP localhost.localdomain:domain (LISTEN) named 700 named 13u IPv4 1059 UDP comp1.info.skull:domain named 700 named 14u IPv4 1060 TCP comp1.info.skull:domain (LISTEN) named 700 named 17u IPv4 60844 UDP 133.2-254.29.217.200.telemar.net.br:domain named 700 named 18u IPv4 60845 TCP 133.2-254.29.217.200.telemar.net.br:domain (LISTEN) named 701 named 11u IPv4 1057 UDP localhost.localdomain:domain named 701 named 12u IPv4 1058 TCP localhost.localdomain:domain (LISTEN) named 701 named 13u IPv4 1059 UDP comp1.info.skull:domain named 700 named 11u IPv4 1057 UDP localhost.localdomain:domain named 700 named 12u IPv4 1058 TCP localhost.localdomain:domain (LISTEN) named 700 named 13u IPv4 1059 UDP comp1.info.skull:domain named 700 named 14u IPv4 1060 TCP comp1.info.skull:domain (LISTEN) named 700 named 17u IPv4 60844 UDP 133.2-254.29.217.200.telemar.net.br:domain named 700 named 18u IPv4 60845 TCP 133.2-254.29.217.200.telemar.net.br:domain (LISTEN) named 701 named 11u IPv4 1057 UDP localhost.localdomain:domain named 701 named 12u IPv4 1058 TCP localhost.localdomain:domain (LISTEN)

Page 5: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

named 701 named 13u IPv4 1059 UDP comp1.info.skull:domain named 701 named 14u IPv4 1060 TCP comp1.info.skull:domain (LISTEN) named 701 named 17u IPv4 60844 UDP 133.2-254.29.217.200.telemar.net.br:domain named 701 named 18u IPv4 60845 TCP 133.2-254.29.217.200.telemar.net.br:domain (LISTEN) named 702 named 11u IPv4 1057 UDP localhost.localdomain:domain named 702 named 12u IPv4 1058 TCP localhost.localdomain:domain (LISTEN) named 702 named 13u IPv4 1059 UDP comp1.info.skull:domain named 702 named 14u IPv4 1060 TCP comp1.info.skull:domain (LISTEN) named 702 named 17u IPv4 60844 UDP 133.2-254.29.217.200.telemar.net.br:domain named 703 named 18u IPv4 60845 TCP 133.2-254.29.217.200.telemar.net.br:domain (LISTEN)

O que eu fiz?

lsof --> Comando para listar arquivos. -i --> Parâmetro do comando lsof, ele serve para listar arquivos associados a um endereço IP. :1-53 --> Porta de 1 a 53.

Conclusão:

O exemplo que usei lista arquivos que estejam associados a Internet e que usem as portas 1 a 53.

*Para maiores informações leia a página manual do comando lsof.

5. USANDO fuser.

O comando fuser identifica os processos que estão usando um determinado arquivo e ou diretório. Veja o parâmetro do comando fuser:

fuser [opções] [caminho]

Opções:

--------------------------------------------------------------------Opção O que faz? ---------------------------------------------------------------------i Pede confirmação antes de matar um processo (usado junto com a opção -k). -k Mata os processos que estão acessando o arquivo/diretório especificado. -u Identifica o usuário de cada processo. --------------------------------------------------------------------

Exemplo:

[root@teste /test]# fuser -u /bin/bash /bin/bash: 992e(root) 1015e(root) 1108e(isk) 1115e(root) 1123e(root) 1418e(isk) 1573e(root)

O que eu fiz?

fuser --> Lista os processos que estão usando um determindado arquivo/diretório. -u --> Mostra o dono daquele processo. /bin/bash --> caminho escolhido.

Page 6: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

Conclusão:

O exemplo mostra os usuários que estão usando /bin/bash.

*Para maiores informações favor ler a página manual do comando fuser.

6. USANDO top.

O comando top mostra uma lista de processos ativos no sistema, ele tem varias opções uteis, você ira conhecer algumas dessas opções, mas primeiro veja o parâmetro do comando top:

top [opções]

Opções:

--------------------------------------------------------------------Opção O que faz? ---------------------------------------------------------------------d "tempo" Atualiza a tela após o tempo especificado (em segundos). -s Diz ao top para ser executado em modo seguro. -i Inicia o `top' ignorando o tempo de processos zumbis. -c Mostra a linha de comando ao invés do nome do programa. -q Faz com que top atualize a tela sem qualquer espera. --------------------------------------------------------------------

Teclas de atalho:

--------------------------------------------------------------------Tecla O que faz? --------------------------------------------------------------------k Manda um sinal para um processo. s Altera o delay da atualização. i Ignora processos zombies. r Altera a prioridade de um processo. n Altera a quantidade de processos a ser mostrados. u Mostra os processos de um usuário --------------------------------------------------------------------

Exemplo:

[root@teste /teste]# top 4:28pm up 12 min, 3 users, load average: 0,16, 0,03, 0,01 40 processes: 39 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 0,7% user, 0,8% system, 0,0% nice, 98,3% idle Mem: 247924K av, 68460K used, 179464K free, 0K shrd, 7760K buff 17136K actv, 0K in_d, 0K in_c, 0K target Swap: 265064K av, 0K used, 265064K free 36128K cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 1 root 9 0 524 524 460 S 0,0 0,2 0:04 init 2 root 9 0 0 0 0 SW 0,0 0,0 0:00 keventd 3 root 9 0 0 0 0 SW 0,0 0,0 0:00 kapmd 4 root 19 19 0 0 0 SWN 0,0 0,0 0:00 ksoftirqd_CPU0 5 root 9 0 0 0 0 SW 0,0 0,0 0:00 kswapd 6 root 9 0 0 0 0 SW 0,0 0,0 0:00 bdflush 7 root 9 0 0 0 0 SW 0,0 0,0 0:00 kupdated 8 root -1 -20 0 0 0 SW< 0,0 0,0 0:00 mdrecoveryd 16 root 9 0 0 0 0 SW 0,0 0,0 0:00 kjournald

Page 7: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

134 root 9 0 0 0 0 SW 0,0 0,0 0:00 khubd 281 root 9 0 0 0 0 SW 0,0 0,0 0:00 kjournald 640 bin 9 0 448 448 372 S 0,0 0,1 0:00 portmap 660 root 9 0 604 604 512 S 0,0 0,2 0:00 syslogd 672 root 9 0 1124 1124 452 S 0,0 0,4 0:00 klogd 694 named 9 0 2836 2836 2096 S 0,0 1,1 0:00 named 696 named 9 0 2836 2836 2096 S 0,0 1,1 0:00 named 697 named 9 0 2836 2836 2096 S 0,0 1,1 0:00 named

*Para obter ajuda dentro do programa pressione a tecla "h". *Para maiores informações sobre o comando top, leia a página manual do comando top.

7. USANDO kill.

O comando kill envia um sinal específico para um determinado processo escolido pelo usuário. Caso nenhum sinal seja especificado, o kill enviará um sinal de término ao processo escolhido pelo usuário. Veja o parâmetro do comando kill:kill [opções] [sinal] [PID]

Opções:

--------------------------------------------------------------------Opção O que faz? ---------------------------------------------------------------------s O sinal pode ser informado como um dígito ou como um número. -l Lista uma relação dos nomes de sinais. --------------------------------------------------------------------Exemplo:

Primeiro usei o ps para listar os processos.

[root@teste /teste]# ps uxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDteste 968 0.0 0.6 2724 1528 tty3 S 14:27 0:00 -bashteste 1183 0.0 0.6 2712 1492 tty4 S 14:34 0:00 -bashteste 1267 0.0 1.1 8364 2776 tty4 T 14:46 0:00 viteste 1271 0.0 0.2 2544 724 tty4 R 14:47 0:00 ps ux

Agora uso o comando kill com o sinal 9 (SIGKILL) para matar o processo 1267 que é o vi.

[root@teste teste]# kill -9 1267

E pronto, o processo foi destruido. Agora veja uma pequena lista de sinais:

Sinal | Valor | Ação | Comentário--------------------------------------------------------------------SIGHUP 1 A Travamento detectado no terminal controladorou morte do processo controladorSIGINT 2 A Interrupção originária do tecladoSIGQUIT 3 C Sinal 'Quit' originária do tecladoSIGILL 4 C Instrução ilegalSIGABRT 6 C Sinal 'Abort' originária abort(3)SIGFPE 8 C Exceção de ponto flutuanteSIGKILL 9 AEF Sinal 'Kill'SIGSEGV 11 C Referência inválida à memóriaSIGPIPE 13 A Duto quebrado: escrita sem leitorSIGALRM 14 A Sinal 'Timer' originária de alarm(2)SIGTERM 15 A Sinal de terminaçãoSIGUSR1 30,10,16 A Sinal definido pelo usuário 1SIGUSR2 31,12,17 A Sinal definido pelo usuário 2SIGCHLD 20,17,18 B Processo filho parado ou terminadoSIGCONT 19,18,25 Continuar se paradoSIGSTOP 17,19,23 DEF Parar processo

Page 8: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

SIGTSTP 18,20,24 D 'Stop' digitado no 'tty'SIGTTIN 21,21,26 D Entrada 'tty' para processo em segundo planoSIGTTOU 22,22,27 D Saída 'tty' para processo em segundo plano

A seguir sinais que são descritos ns SYSv@ mas não naPOSIX.1.

Sinal | Valor | Ação | Comentário--------------------------------------------------------------------SIGBUS 10,7,10 C Acesso à memória defeituosoSIGPOLL A Evento rastreável (SysV). Sinôn. de SIGIOSIGPROF 27,27,29 A 'Profiling timer expired'SIGSYS 12,-,12 C Argumento inválido para rotina(SVID)SIGTRAP 5 C 'Trace/breakpoint trap'SIGURG 16,23,21 B Condição urgente no 'socket' (BSD 4.2)SIGVTALRM 26,26,28 A Temporizador virtual (BSD 4.2)SIGXCPU 24,24,30 C Tempo da CPU excedido (BSD 4.2)SIGXFSZ 25,25,31 C Tamanho do arquivo excedido (BSD 4.2)

Para os SIGSYS, SIGXCPU, SIGXFSZ, e em algumas arquiteturas com SIGBUS,a ação padrão do Linux, acima do kernel (2.3.27), é A (terminar), enquanto SYSv2 prescreve C (terminar e 'dump core).)

A seguir vários outros sinais

Signal | Valor | Ação | Comentario--------------------------------------------------------------------SIGIOT 6 C IOT trap. Sinônimo de SIGABRTSIGEMT 7,-,7SIGSTKFLT -,16,- A Falha de 'stack' no coprocessadorSIGIO 23,29,22 A E/S é possível agora (BSD 4.2)SIGCLD -,-,18 Sinômino de SIGCHLDSIGPWR 29,30,19 A Queda de energia (SYS V)SIGINFO 29,-,- Sinômino de SIGPWRSIGLOST -,-,- A Perda de 'lock' para o arquivoSIGWINCH 28,28,20 B Redimensionar janela (BSD 4.3, Sun)SIGUNUSED -,31,- A Sinal não utilizado (será SIGSYS)

(Onde - indica ausência do sinal. Quando são dados trêsvalores, o primeiro normalmente se aplica a alpha e sparc;o do meio para i386, ppc e sh e o último para mips. Osinal 29 é SIGINFO / SIGPWR num alpha mas SIGLOST numasparc.)

As letras na coluna 'ação' têm os seguintes significados:

*A Terminar o processo.*B Ignorar o sinal.*C Terminar o processo e dar 'dump core'.*D Parar o processo.*E Este sinal não pode ser manipulado.*F Sinal não pode ser ignorado.

*Essa lista de sinais foi tirada da man page da mesma, para acessa-lá use: man 7 signal.*Para maiores informações consulte a página manual do comando kill.

8. USANDO killall.

O comando killall permite que você possa finalizar processos através do nome. O comando killall mata o processo Pai juntamente com os seus processos filhos. Veja o parâmetro do comando killall:

killall [opções] [sinal] [processo]

Page 9: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

Opções:

--------------------------------------------------------------------Opção O que faz? ---------------------------------------------------------------------i Pede confirmação para finalização de um processo. -q Ignora a existência do processo. -l Lista todos os sinais conhecidos. -w Espera a finalização do processo selecionado, a execução do killall sóserá finalizada após finalizar todos os processos. -v Informa se o sinal foi enviado com sucesso ao processo. --------------------------------------------------------------------

Exemplo:

[root@teste /teste]# killall vi

O que eu fiz?

killall --> Comando que permite a finalização de processos através do nome. vi --> processo a ser finalizado.

Conclusão:

Eu mandei finalizar o comando/programa/aplicação vi.

*Para maiores informações sobre o comando killall leia a página manual do mesmo.

9. USANDO killall5.

O comando killall5 envia um sinal de finalização para todos os processos que estão sendo executados. Veja o parâmetro do comando killall5:

killall5 [sinal]

*Cuidado com o uso do comando killall5!

10. USANDO nohup.

O comando nohup faz com que um processo fique imune ao sinal hangup (logout). Veja o parâmetro do comando nohup:

nohup [comando]

Exemplo:

[root@teste /teste]# nohup tar -czvf backup.tar.gz / &

O que eu fiz?

nohup --> Comando que faz com que um comando/programa/aplicação fique imune aos sinais de interrupção. tar --> Comando para arquivamento. -czvf --> Parâmetro do comando tar.

Page 10: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

backup.tar.gz / --> Nome que escolhi para o backup de /

Conclusão:

Com o uso do nohup pude deixar o sistema fazendo backup de todo meu sistema livre de interrupções.

11. PARANDO E CANCELANDO A EXECUÇÃO DE UMA APLICAÇÃO EM PRIMEIRO PLANO.

Para cancelar ou parar a execução de uma aplicação você usara teclas de atalhos, as teclas são essas:

Atalho para parar a execução de uma aplicação: ctrl+z Atalho para cancelar a execução de uma aplicação: ctrl+c

12. USANDO jobs.

O comando jobs mostra os processos que estão parados ou rodando em segundo plano. Veja o parâmetro do comando jobs:

jobs [opções]

Exemplo:

Aqui eu usei o comando jobs para ver os processos que estão parados ou rodando em segundo plano.

[root@comp1 teste]# jobs [1]+ Stopped vi index.txt [2] Exit 1 find / -name root &

*Para maiores informações sobre o comando jobs leia a página manual do mesmo.

13. COLOCANDO UM PROGRAMA EM SEGUNDO PLANO (BACKGROUND).

Muitas vezes quando estamos em um terminal e precisamos executar um outro programa naquele mesmo terminal mas sem cancelar a execução da aplicação atual, nós colocamos ele em segundo plano (background), para colocar uma aplicação em background será necessário que você interrompa a execução da aplicação atual com o atalho ctrl+z. Agora veja o parâmetro do comando bg:

bg [número_do_job]

Por exemplo:

Você está editando um texto, vamos supor que seja o editor vi, primeiro você terá que parar a execução do vi com as teclas ctrl+z, então irá aparecer uma mensagem com essa:

[1]+ Stopped vi

Agora use o comando jobs para ver o que aconteceu:

Page 11: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

[root@teste /teste]# jobs [1]+ Stopped vi

Podemos notar com o uso do comando jobs que o vi está parado, agora vamos colocar ele em Background:

[root@teste /teste]# bg 1 [1]+ vi &

[1]+ Stopped vi

Pronto seu processo está sendo executado em background.

Como faço para colocar uma aplicação em background no momento da sua execução? Acresente o & junto com o comando, exemplo:

Aqui eu usei o programa mpg123 junto com o caminho e coloquei ele em background.

[root@teste/teste]# mpg123 /mp3/Misfits/[22]Famous_Monsters/[17]_Helena.mp3 & [2] 1413

14. COLOCANDO UM PROGRAMA EM PRIMEIRO PLANO (FOREGROUND).

Para colocar um programa em primeiro plano usamos o comando fg. Veja o parâmetro do comando fg:

fg [número_do_job]

Exemplo:

Aproveitando o exemplo anterior. Bem, agora vamos colocar o vi em primeiro plano(Foreground) mas antes vamos usar comando jobs para ver os programas que estão parados ou em segundo plano (Background):

[root@teste /teste]# jobs [1]+ Stopped vi

Agora que sei o número do vi vamos colocar ele em primeiro plano:

[root@teste /teste]# fg 1

Então o vi está em primeiro plano.

*Para mais informações sobre o comando fg favor consultar a página manual do mesmo.

15. PRIORIDADE DOS PROCESSOS.

Nos sistemas Unix trabalhamos com prioridade de processos. A prioridade de processos serve para dar mais ou menos prioridade para execução de um comando/programa/aplicação. A prioridade de um comando/programa/aplicação pode variar de -20 (alta prioridade) a 19 (baixa prioridade).

Page 12: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

16. USANDO nice.

O comando nice configura a prioridade da execução de um comando/programa/aplicação. Veja os parâmetros do comando nice:

nice [opções] [comando/programa/aplicação]

Opções:

--------------------------------------------------------------------Opção O que faz? ---------------------------------------------------------------------n [número] Seta a prioridade para um comando/programa/aplicação. --------------------------------------------------------------------

Exemplo:

[root@teste /teste]# nice -n -10 startx

O que eu fiz?

nice --> Comando que configura a prioridade da execução de um comando/programa/aplicação. -n --> Parâmetro do comando nice que seta a prioridade [número] Seta a prioridade para um comando/programa/aplicação. --------------------------------------------------------------------

Exemplo:

[root@teste /teste]# nice -n -10 startx

O que eu fiz?

nice --> Comando que configura a prioridade da execução de um comando/programa/aplicação. -n --> Parâmetro do comando nice que seta a prioridade de um comando/programa/aplicação. -10 --> nivel de prioridade. startx --> o comando/programa/aplicação que atribui a prioridade.

Conclusão:

Eu rodei o comando/programa/aplicação com a prioridade -10.

*Para maiores informações leia a página manual do nice. *O comando nice só pode ser usado no momento da execução do comando/programa/aplicação.

17. USANDO renice.

O renice serve para alterar a prioridade dos processos que já estão sendo executados no sistema. Veja o parâmetro do comando renice:

renice [ajuste] [opções] [destino]

Page 13: ARTIGO - Gerenciamento de Processos no Linux - mais avancado -

Ajuste:

+ ou - número

Opções:

--------------------------------------------------------------------Opção O que faz? ---------------------------------------------------------------------u O reajuste será aplicado nos processos do usuário especificado. -g O reajuste será aplicado nos processos do grupo especificado. -p O reajuste será aplicado em um PID. --------------------------------------------------------------------

Exemplo:

[root@teste /teste]# renice +4 1023 -u root teste -p 789

O que eu fiz?

renice --> Comando para reajustar a prioridade de uma comando/programa/aplicação +4 --> Prioridade escolhida. 1023 --> PID escolhido -u --> Parâmetro do comando renice para reajustar processos de um determinado usuário. root --> usuário escolhido. teste --> usuário escolhido. -p --> Parâmetro do comando renice que faz reajustes através de um PID. 789 --> PID escolhido.

Conclusão:

Alterei a prioridade dos processos de PID 1023 e 789 e de todos os processos pertencentes aos usuários root e teste.

*Para mais informações sobre o comando renice leia a página manual do mesmo.   Por: 06/04/2003 - Por Ielton Ferreira Carneiro PintoE-mail:  ISK [arroba] linuxclube.comTodos os direitos pertencem ao Autor. Ultima atualização desse documento: 07/04/2003