Eksplorowanie /PROC System plików w Linux

Eksplorowanie /PROC System plików w Linux

Dzisiaj zajmiemy się w środku /Proc katalog i rozwinąć go znajomość. /Proc katalog jest obecny na wszystkich Linux systemy, niezależnie od smaku lub architektury.

Jednym nieporozumieniem, że musimy natychmiast wyjaśnić, jest to, że /Proc katalog jest NIE prawdziwy System plików, w sensie tego terminu. To jest Wirtualny system plików. Zawarty w Procfs to informacje o procesach i innych informacji systemowych. Jest zmapowany na /Proc i zamontowany na uruchomić czas.

Eksplorowanie /system plików PROC

Najpierw wejdźmy do /Proc katalog i rozejrzyj się:

# cd /proc

Pierwszą rzeczą, którą zauważysz, jest to, że są jakieś znane pliki dźwiękowe, A potem cała masa ponumerowane katalogi. ponumerowane katalogi przedstawiać procesy, lepiej znany jako Pids, i w nich, polecenie, które je zajmuje. Pliki zawierają informacje systemowe, takie jak memory (meminfo), Informacje o procesorze (Cpuinfo) i dostępne systemy plików.

Przeczytaj także:  Linux darmowe polecenie, aby sprawdzić pamięć fizyczną i zamienić pamięć

Najpierw spójrzmy na jeden z plików:

# cat /proc /meminfo
Przykładowy wyjście

który zwraca coś podobnego do tego:

MEMTOTAL: 604340 KB MEMFREE: 54240 KB Bufory: 18700 KB buforowane: 369020 KB Zamień: 0 KB Aktywne: 312556 KB Nieaktywne: 164856 KB Active (Anon): 89744 KB Inaktywne (Anon): 360 KB (plik): 222812 KB Inaktywne (Plik): 164496 KB Undertable: 0 KB mlocked: 0 kb Swaptotal: 0 kb swapfree: 0 kb brudny: 0 kb piszbowy: 0 kb anonpages: 89724 kb Mapped: 18012 kb shmem: 412 kb płyty: 50104 kb sreclable: 40224 kb … 

Jak widzisz, /proc/meminfo zawiera mnóstwo informacji o pamięci twojego systemu, w tym całkowitą dostępną kwotę (w KB) i kwota bezpłatna w dwóch górnych liniach.

Uruchamianie polecenia CAT na dowolnym pliku w /Proc Wyświetli ich zawartość. Informacje o dowolnych plikach są dostępne na stronie Man, uruchamiając:

# Man 5 /Proc /

Dam ci szybkie podsumowanie /Proc akta:

  1. /proc/cmdline - Informacje o wierszu poleceń jądra.
  2. /Proc/Consola - Informacje o obecnych konsolach, w tym Tty.
  3. /proc/urządzenia - Sterowniki urządzeń aktualnie skonfigurowane dla działającego jądra.
  4. /Proc/DMA - Informacje o obecnych kanałach DMA.
  5. /proc/fb - Urządzenia nabrzeżne.
  6. /Proc/FileSystemS - Obecne systemy plików obsługiwane przez jądro.
  7. /Proc/iomem - Aktualna mapa pamięci systemowej dla urządzeń.
  8. /proc/ioports - Zarejestrowane regiony portów do komunikacji wyjściowej wejściowej z urządzeniem.
  9. /proc/loadavg - Średnia obciążenia systemu.
  10. /Proc/Blokks - Pliki obecnie zablokowane przez jądro.
  11. /proc/meminfo - Informacje o pamięci systemowej (patrz powyższy przykład).
  12. /proc/misc - Różne sterowniki zarejestrowane na różne główne urządzenie.
  13. /proc/moduły - Obecnie załadowane moduły jądra.
  14. /Proc/Mounts - Lista wszystkich mocowań używanych przez system.
  15. /proc/partycje - Szczegółowe informacje o partycjach dostępnych dla systemu.
  16. /Proc/PCI - Informacje o każdym urządzeniu PCI.
  17. /Proc/Stat - Rekord lub różne statystyki przechowywane przed ostatnim ponownym uruchomieniem.
  18. /Proc/Swap - Informacje o przestrzeni swapowej.
  19. /Proc/Uptime - Informacje o aktualizacji (w sekundach).
  20. /proc/wersja - Wersja jądra, wersja GCC i dystrybucja Linux.

W /Proc ponumerowane katalogi znajdziesz kilka akta I spinki do mankietów. Pamiętaj, że liczby tych katalogów korelują z Pid polecenia uruchomionego w nich. Użyjmy przykładu. W moim systemie jest nazwa folderu /Proc/12:

# cd /proc /12 # ls
Przykładowy wyjście
attr Coredump_filter io montowanie oom_score_adj smaps wchan autogroup cpuset opóźnienie mountStats pagemap stos auxv cwd limity netto osobowość statystyka środowiska loginuid ns root Statm Clear_refs mapy exe mapy numa_maps Status Status Status CMDLINE FD FD MEOM_ADJ STANISTAT SYSCALL

Jeśli uruchomię:

# cat/proc/12/status

Dostaję następujące:

Nazwa: XenWatch Stan: S (Sleeping) TGID: 12 PID: 12 PPID: 2 Tracerpid: 0 UID: 0 0 0 0 GID: 0 0 0 0 FDSISE: 64 Grupy: Wątki: 1 SIGQ: 1/4592 SIGPND: 000000000000000000 Shdpnd : 0000000000000000 SigBlk: 0000000000000000 SigIgn: ffffffffffffffff SigCgt: 0000000000000000 CapInh: 0000000000000000 CapPrm: ffffffffffffffff CapEff: ffffffffffffffff CapBnd: ffffffffffffffff Cpus_allowed: 1 Cpus_allowed_list: 0 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 84 nonvoluntary_ctxt_switches: 0

Więc co to oznacza? Cóż, ważna część znajduje się na górze. Z pliku stanu możemy zobaczyć, do którego należy ten proces Xenwatch. Jego obecny stan jest spanie, i jego proces ID Jest 12, oczywiście. Widzimy również, kto to działa, jako UID I KOŁOWACIZNA Czy 0, wskazując, że ten proces należy do źródło użytkownik.

W dowolnym numerowanym katalogu będziesz mieć podobną strukturę plików. Najważniejsze i ich opisy są następujące:

  1. CMDLINE - wiersz poleceń procesu
  2. otaczać - Zmienne środowiskowe
  3. FD - Deskryptory pliku
  4. limity - zawiera informacje o granicach procesu
  5. wierzchowce - powiązana informacja

Zauważysz również szereg linków w ponumerowanym katalogu:

  1. CWD - link do aktualnego katalogu roboczego procesu
  2. exe - link do wykonywania procesu
  3. źródło - link do katalogu pracy procesu

To powinno zacząć od zapoznania się z /Proc informator. Powinno to również zapewnić wgląd w to, w jaki sposób wiele poleceń uzyskuje swoje informacje, takie jak czas aktu, lsof, uchwyt, I Ps, żeby wymienić tylko kilka.