terça-feira, 19 de fevereiro de 2008

Descubra as possibilidades do diretório /proc - Parte 2

O que está no processo?

Como eu disse, os diretórios nomeados com números representam todos os processos que estão sendo executados. Quando um processo acaba, ele desaparece do diretório /proc automaticamente. Se você checar algum desses diretórios enquanto ele existe, você encontrará uma abundância de arquivos, tais como:

attr cpuset fdinfo mountstats stat
auxv cwd loginuid oom_adj statm
clear_refs environ maps oom_score status
cmdline exe mem root task
coredump_filter fd mounts smaps wchan

Vamos dar uma olhada nos arquivos principais:

cmdline: contém o comando que começou o processo, com todos os seus parâmetros.

cwd: um link simbólico para o diretório de trabalho atual (CWD) para o processo.

environ: Mostra todas as variáveis de ambiente do processo.

fd: Contém todos os descritores de arquivos de um processo, mostrando que arquivos ou dispositivos estão usando eles.

maps, statm, e mem: Lidam com a memória usada pelo processo.

stat e status: Fornecem informação sobre o status do processo, mas este último é muito mais claro do que o primeiro.

Estes arquivos fornecem informações úteis. Por exemplo, se você quer caçar processos zumbis, você pode examinar todos os diretórios enumerados e checar se "(Z) Zombie" aparece no arquivo /status. Uma vez eu precisei checar se um certo programa estava rodando; Eu examinei o arquivo /cmdline, procurando pela string desejada (Você também pode fazer isso trabalhando com a saída do comando ps, mas este não é o ponto aqui).

Ajustando o sistema: /proc/sys

O /proc/sys não fornece apenas informações sobre o sistema, ele também permite que você mude parâmetros do kernel on the fly e habilita ou desabilita funcionalidades. (Claro, isto pode ser prejudicial ao seu sistema -- considere-se avisado!)

Para determinar se você pode configurar um arquivo ou se ele é apenas leitura, use o comando ls -ld; se um arquivo tem o atributo "W", significa que você pode usa-lo para configurar o kernel de certa forma. Por exemplo, ls -ld /proc/kernel/* tem a saída:

dr-xr-xr-x 0 root root 0 2008-01-26 00:49 pty
dr-xr-xr-x 0 root root 0 2008-01-26 00:49 random
-rw-r--r-- 1 root root 0 2008-01-26 00:49 acct
-rw-r--r-- 1 root root 0 2008-01-26 00:49 acpi_video_flags
-rw-r--r-- 1 root root 0 2008-01-26 00:49 audit_argv_kb
-r--r--r-- 1 root root 0 2008-01-26 00:49 bootloader_type
-rw------- 1 root root 0 2008-01-26 00:49 cad_pid
-rw------- 1 root root 0 2008-01-26 00:49 cap-bound

Você pode ver que o arquivo bootloader_type não pode ser mudado, mas outros arquivos podem. Para mudar um arquivo, use algo como like echo 10 >/proc/sys/vm/swappiness. Este exemplo em particular permitiria que você mudasse a performance da páginação da memória virtual. Essas mudanças são apenas temporárias, e seus efeitos desaparecerão quando você reiniciar o sistema; use o comando sysctl e o arquivo /etc/sysctl.conf para mudanças permanentes.

Vamos dar uma olhada por cima nos diretórios do /proc/sys

debug: Tem (surpresa!) informações para debug. Isto é bom se você está no desenvolvimento do kernel.

dev: Fornece parâmetros para dispositivos específicos no seu sistema; por exemplo, cheque o diretório /dev/cdrom.

fs: Oferece dados em todos os aspectos possíveis do sistema de arquivos.

kernel: Deixa você afetar a configuração e operação do kernel diretamente.

net: Deixa você controlar questões relacionadas com redes. Seja cuidadoso, por que bagunçar isto pode fazer você perder a sua conectividade.

vm: Lida com o subsistema VM.

Conclusão

O diretório especial /proc fornece informações completamente detalhadas sobre o funcionamento interno do Linux e deixa você refinar muitos aspectos da sua configuração. Se você perder algum tempo aprendendo todas as possibilidades deste diretório, você será capaz de ter um computador com um Linux mais perfeito. E não é isto que nós queremos? :)

Referências
Artigo Original: http://www.linux.com/feature/126718

Um comentário:

Leandro Souto disse...

Amigo, li sua materia, achei fantastica... estou passando apenas para lhe deixar os Parabens, pois uma materia tao boa, deve constar o agradecimento dos leitores. :)