Linux – Friheden til systemadministration: Version 2.8.20060113 – 2021-01-07 | ||
---|---|---|
forrige | Kapitel 4. Linux-kernen | næste |
Som systemadministrator (root) har man gode muligheder for at følge, hvad Linux-kernen foretager sig. Prøv at skrive mount. En af de linjer, som kommer frem er
none on /proc type proc (rw)
I modsætning til de almindelige filsystemer, som er monteret (f.eks. /dev/hda1, /dev/hda2 osv.), så er /proc meget speciel. Prøv f.eks. som det første eksperiment at se følgende fil.
[tyge@hven ~]$ ls -l /proc/kcore -r-------- 1 root root 134156288 jan 22 23:18 /proc/kcore
Betyder dette, at der ligger en ca. 128 Mb stor fil? Nej – alt hvad der ligger under /proc er virtuelt. Det er Linux-kernen som på en elegant måde giver adgang til en række nyttige kerne-informationer. I eksemplet er /proc/kcore en adgang til hele den fysiske RAM i maskinen. Lad os se mere på hvad der sker i /proc
[tyge@hven ~]$ ls -l /proc/ 1/ 1150/ 529/ 741/ 9725/ 9794/ fs/ partitions 10023/ 15656/ 539/ 765/ 9726/ 9795/ ide/ pci 10030/ 15657/ 554/ 809/ 9727/ 9797/ interrupts rtc 10043/ 15658/ 570/ 825/ 9765/ 9798/ ioports scsi/ 1017/ 17917/ 571/ 961/ 9767/ 9800/ kcore self@ 10313/ 17931/ 581/ 965/ 9769/ 984/ kmsg slabinfo 10317/ 17964/ 596/ 966/ 9771/ 9950/ ksyms sound 1051/ 18243/ 6/ 967/ 9776/ 9958/ loadavg stat 1052/ 18246/ 61/ 968/ 9777/ apm locks swaps 1053/ 18250/ 698/ 969/ 9780/ bus/ mdstat sys/ 1054/ 18524/ 701/ 970/ 9782/ cmdline meminfo tty/ 1055/ 2/ 702/ 971/ 9784/ cpuinfo misc uptime 10571/ 3/ 703/ 9717/ 9786/ devices modules version 10723/ 307/ 704/ 972/ 9788/ dma mounts 1083/ 4/ 717/ 9722/ 9789/ fb mtrr 11294/ 5/ 732/ 9723/ 9791/ filesystems net/
Som det kan ses, er der en mængde kataloger med numre. Der er et katalog for hver proces på maskinen. Lad os se på et af katalogerne mere detaljeret. Der kører netop nu en emacs på maskinen med pid=18243 (PID betyder proces-ID). Dette findes ved brug af ps. Tilsvarende kan vi se hvad kataloget i /proc/18243 indeholder.
[tyge@hven ~]$ ps aux | grep emacs pto 18243 0.1 4.7 8940 6076 pts/1 S 22:11 0:09 emacs kerne.sgml [tyge@hven ~]$ ls /proc/18243 cmdline cwd environ exe fd maps mem root stat statm status
Det første underlige er, at filerne har filstørrelse nul. Det skal man ikke lade sig snyde af. Alt er virtuelt her – og nogle gange kan filer i /proc have indhold. Prøv selv at køre more /proc/PID/cmdline, hvor PID er en proces-ID på din maskine, f.eks. for en editor, du har startet på kommando-linjen.
Via /proc/PID/cwd er der direkte adgang til det katalog, som programmet blev startet op i. Filerne /proc/PID/stat* (tre filer) fortæller mere om f.eks. hukommelsesforbrug og andre status-parametre.
Nu har vi set på hvad der gemmes for den enkelte proces. Lad os nu se på hvad der ellers kan findes i /proc.
Belastning af maskinen (load) – eller rettere – hvor mange processer, der prøver at tilgå kernen i snit, kan ses direkte ud fra /proc/loadavg. Det er samme tal som uptime har til sidst – belastning det sidste minut, sidste 5 minutter, og endelig de sidste 15 minutter.
Vil du vide mere om, hvor meget hukommelse der er brugt, så kan du få dette fra kommandoen free, men en endnu mere detaljeret visning kan hentes fra filen /proc/meminfo.
[tyge@hven ~]$ free total used free shared buffers cached Mem: 127760 124336 3424 135860 4684 52104 -/+ buffers/cache: 67548 60212 Swap: 68504 7120 61384 [tyge@hven ~]$ more /proc/meminfo total: used: free: shared: buffers: cached: Mem: 130826240 127242240 3584000 139255808 4788224 53280768 Swap: 70148096 7290880 62857216 MemTotal: 127760 kB MemFree: 3500 kB MemShared: 135992 kB Buffers: 4676 kB Cached: 52032 kB BigTotal: 0 kB BigFree: 0 kB SwapTotal: 68504 kB SwapFree: 61384 kB
I /proc/net/ er der en masse nyttig information om hvordan netværket ser ud lige nu. De fleste filer er direkte læsbare for alle, mens f.eks. firewall-filerne (for kerne 2.2) /proc/net/ip_fwchains (med firewall-opsætningen) og /proc/net/ip_fwnames kun kan læses af root (sikkerhed).