10_Processos.
Transcrição
10_Processos.
Escola Profissional Vasconcellos Lebre Ano Lectivo 2009/2010 Processos do Linux Para podermos aceder à listagem de processos do nosso sistema linux, usamos o comando ps, que significa Process Status, que mostra todos os processos que estão a correr na nossa máquina. É necessário saber utilizar o ps, para que quando tivermos algum processo pendurado, que se queira terminar, acedendo à sua informação, facilmente conseguimos terminar o processo recorrendo ao comando kill. Comando ps – Estado dos Processos Vamos ver como podemos utilizar o ps. samuel@houston:~$ ps PID TTY 5395 pts/1 5414 pts/1 • • • • PID TTY TIME CMD TIME CMD 00:00:00 tcsh 00:00:00 ps – Número do Processo – Número do TTY, se tivermos várias sessões, temos diferentes TTY – Duração do processo – Nome do comando Opções a usar no comando ps a e f l u x t ps axu ps ux ps -U root -u root u Escola Profissional da Mealhada Lista todos os processos Mostra as variáveis associadas aos processos Mostra a árvore de execução dos processsos Mostra mais campos Mostra o nome do usuário e a hora de inicio Mostra os processos que não estão associados a terminais Mostra todos os processos do terminal Listar todos os processos Listar todos os processos do nosso user Listar todos os processos do user “root” 1/5 Escola Profissional Vasconcellos Lebre Ano Lectivo 2009/2010 samuel@houston:~$ ps ux USER spereira spereira spereira spereira spereira spereira PID %CPU 6364 0.2 6365 0.5 6398 0.2 6399 1.9 6418 0.5 6423 0.0 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND • • • • • • • • • • • %MEM VSZ RSS TTY 0.6 7892 1552 ? 1.2 5588 3080 pts/3 0.6 7892 1552 ? 1.1 5584 3068 pts/4 0.7 4432 1828 pts/4 0.3 2560 996 pts/3 STAT S Ss S Ss S+ R+ START 10:12 10:12 10:13 10:13 10:13 10:13 TIME COMMAND 0:00 sshd: spereira@pts/3 0:00 -bash 0:00 sshd: spereira@pts/4 0:00 -bash 0:00 vi 0:00 ps -U spereira u – Nome do Utilizador – Número do Processo – Percentagem de utilização do CPU – Percentagem de utilização de memória – Tamanho da memória virtual – Tamanho da memória residente – Número do terminal, se tivermos várias sessões, temos diferentes terminais – Estado actual do processo – Hora em que o processo foi iniciado – Tempo de processamento consumido – Nome do comando Estados dos Processos D R S T X Z Processo em “Uninterruptible sleep” Processo a correr Processo suspenso Processo parado Processo morto (não aparece na lista dos processos) Processo Zombie, está terminado, mas está ligado pelo processo que o iniciou < N L s l + Corre em alta prioridade Corre em baixa prioridade Aloca as páginas na memória Líder de sessão, garante que o processo termina quando o user faz logout Processo em multi-thread Corre em foreground Escola Profissional da Mealhada 2/5 Escola Profissional Vasconcellos Lebre Ano Lectivo 2009/2010 top – Listar processos em tempo real Vamos ver como podemos utilizar o top. samuel@houston:~$ top U spereira top - 11:01:20 up 1:15, 6 users, load average: 0.10, 0.05, 0.01 Tasks: 110 total, 1 running, 108 sleeping, 1 stopped, 0 zombie Cpu(s): 1.0%us, 1.7%sy, 0.3%ni, 95.2%id, 1.4%wa, 0.1%hi, 0.2%si, 0.0%st Mem: 256092k total, 248340k used, 7752k free, 50016k buffers Swap: 240932k total, 33328k used, 207604k free, 70120k cached PID USER PR NI VIRT RES SHR S %CPU 6364 spereira 15 0 8032 1568 1072 S 0.0 6365 spereira 15 0 5588 3100 1496 S 0.0 6398 spereira 15 0 8032 1568 1072 S 0.0 6399 spereira 15 0 5592 3120 1512 S 0.0 6800 spereira 18 0 4428 1852 1476 T 0.0 %MEM TIME+ COMMAND 0.6 0:01.06 sshd 1.2 0:00.42 bash 0.6 0:01.61 sshd 1.2 0:00.35 bash 0.7 0:00.02 vi Opções a usar no comando top top top -U user top -p PID Escola Profissional da Mealhada Monitoriza todos os processos Monitoriza apenas os processos de um user Monitoriza apenas um determinado processo 3/5 Escola Profissional Vasconcellos Lebre Ano Lectivo 2009/2010 Comando kill – Comando para enviar informação para os processos O kill é um comando para enviar mensagens para os processos, por norma a mensagem que ele envia á para terminar o processo, mas serve também para outras opções. samuel@houston:~$ kill PID Para se ver a lista de opções do kill, usa-se o man kill. Algumas opções para terminar processos. 0 1 2 9 15 SIGTERM - Termina o processo SIGHUP - Reinicia o processo (lê as configurações novamente) SIGINT - Sinal de Interrupção (CRTL+C) SIGKILL - Mata o Processo, sem delays SIGTERM - Termina o Processo Este comando termina todos os processos que pode terminar. samuel@houston:~$ kill -9 -1 Escola Profissional da Mealhada 4/5 Escola Profissional Vasconcellos Lebre Ano Lectivo 2009/2010 Comando killall – Comando para enviar informação para os processos por “nome” O killall é um comando para enviar mensagens para os processos, por norma a mensagem que ele envia á para terminar o processo, mas serve também para outras opções. samuel@houston:~$ killall NOME_PROCESSO Para se ver a lista de opções do killall, usa-se o man killall. Algumas opções para terminar processos. killall apache killall -u user killall -u user tcsh Escola Profissional da Mealhada Termina todos os processos do apache Termina todos os processos de um terminado utilizador Termina o processo tcsh de um terminado utilizador 5/5