Sei sulla pagina 1di 15

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
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
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)
|-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)
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.

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
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 ux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
teste 968 0.0 0.6 2724 1528 tty3 S 14:27 0:00 -bash
teste 1183 0.0 0.6 2712 1492 tty4 S 14:34 0:00 -bash
teste 1267 0.0 1.1 8364 2776 tty4 T 14:46 0:00 vi
teste 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 controlador
ou morte do processo controlador
SIGINT 2 A Interrupção originária do teclado
SIGQUIT 3 C Sinal 'Quit' originária do teclado
SIGILL 4 C Instrução ilegal
SIGABRT 6 C Sinal 'Abort' originária abort(3)
SIGFPE 8 C Exceção de ponto flutuante
SIGKILL 9 AEF Sinal 'Kill'
SIGSEGV 11 C Referência inválida à memória
SIGPIPE 13 A Duto quebrado: escrita sem leitor
SIGALRM 14 A Sinal 'Timer' originária de alarm(2)
SIGTERM 15 A Sinal de terminação
SIGUSR1 30,10,16 A Sinal definido pelo usuário 1
SIGUSR2 31,12,17 A Sinal definido pelo usuário 2
SIGCHLD 20,17,18 B Processo filho parado ou terminado
SIGCONT 19,18,25 Continuar se parado
SIGSTOP 17,19,23 DEF Parar processo
SIGTSTP 18,20,24 D 'Stop' digitado no 'tty'
SIGTTIN 21,21,26 D Entrada 'tty' para processo em segundo plano
SIGTTOU 22,22,27 D Saída 'tty' para processo em segundo plano
A seguir sinais que são descritos ns SYSv@ mas não na
POSIX.1.
Sinal | Valor | Ação | Comentário
--------------------------------------------------------------------
SIGBUS 10,7,10 C Acesso à memória defeituoso
SIGPOLL A Evento rastreável (SysV). Sinôn. de SIGIO
SIGPROF 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 SIGABRT
SIGEMT 7,-,7
SIGSTKFLT -,16,- A Falha de 'stack' no coprocessador
SIGIO 23,29,22 A E/S é possível agora (BSD 4.2)
SIGCLD -,-,18 Sinômino de SIGCHLD
SIGPWR 29,30,19 A Queda de energia (SYS V)
SIGINFO 29,-,- Sinômino de SIGPWR
SIGLOST -,-,- A Perda de 'lock' para o arquivo
SIGWINCH 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ês
valores, o primeiro normalmente se aplica a alpha e sparc;
o do meio para i386, ppc e sh e o último para mips. O
sinal 29 é SIGINFO / SIGPWR num alpha mas SIGLOST numa
sparc.)
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]

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.
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:

[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).

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]

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 Pinto


E-mail: ISK [arroba] linuxclube.com
Todos os direitos pertencem ao Autor.
Ultima atualização desse documento: 07/04/2003

Potrebbero piacerti anche