/proc
Zdá se, že souborový systém vždy existuje, protože je vytvořen při bootování a je odstraněn při vypnutí, ale ve skutečnosti je to virtuální souborový systém, který obsahuje mnoho relevantních informací o vašem systému a jeho běžících procesech. V tomto článku se hluboce ponořím do jeho obsahu a do toho, jakou hodnotu z něj jako správce systému můžete získat.
Poznámka:K souborům a adresářům přistupuji pod
/proc
jako standardní uživatel a ne jako root, pokud není uvedeno jinak.
Pokud se podíváte na soubory pod /proc
, uvidíte jich hodně (150+), v závislosti na tom, kolik procesů máte spuštěných.
$ ls /proc
1 174 26 2902 4109 531 fb
10 175 2601 2904 41275 546 filesystems
1004 176 2602 2907 41292 547 fs
<snip>
166 2589 2889 4000 47452 dma vmstat
167 2594 2898 4005 475 driver zoneinfo
168 2595 29 40986 522 execdomains
Očíslované soubory jsou adresáře, které odpovídají číslům procesů nebo ID procesů (PID). Například v prvním sloupci jsou procesy s čísly 1, 10, 1055, 1057, 1059 a tak dále. Uvnitř těchto adresářů s čísly procesů je více souborů, které mají co do činění se samotnými procesy. Níže je uveden seznam /proc/411
adresář.
$ ls /proc/411
ls: cannot read symbolic link /proc/411/cwd: Permission denied
ls: cannot read symbolic link /proc/411/root: Permission denied
ls: cannot read symbolic link /proc/411/exe: Permission denied
arch_status fdinfo numa_maps smaps_rollup
attr gid_map oom_adj stack
autogroup io oom_score stat
auxv latency oom_score_adj statm
cgroup limits pagemap status
clear_refs loginuid patch_state syscall
cmdline map_files personality task
comm maps projid_map timers
coredump_filter mem root timerslack_ns
cpuset mountinfo sched uid_map
cwd mounts schedstat wchan
environ mountstats sessionid
exe net setgroups
fd ns smaps
V každém adresáři je několik souborů, které běžní uživatelé nemohou číst. Chcete-li zobrazit nebo otevřít tyto soubory, musíte být root.
[ Pokud byste chtěli vidět praktické využití informací /proc, podívejte se na:Jak vyčistit odkládací paměť v Linuxu ]
Všimnete si, že dlouhý výpis (ls -l /proc
) ukazuje, že běžné textové soubory mají velikost 0. Soubor s nulovou velikostí obvykle znamená, že neobsahuje žádný obsah. Nicméně tyto /proc
soubory, jako je /proc
samotný souborový systém (procfs
), jsou virtuální. dělají obsahují informace, nebo proč by tam byly?
Zobrazte například cpuinfo
soubor na obrazovku a uvidíte, co tím myslím.
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
stepping : 9
cpu MHz : 2303.998
cache size : 4096 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq monitor ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase avx2 invpcid rdseed clflushopt md_clear flush_l1d
bogomips : 4607.99
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
Tento soubor obsahuje informace o vašem CPU (procesorech). Mnoho z běžných souborů textového typu obsahuje informace o hardwaru a systému a můžete cat
stejně jako jakýkoli jiný textový soubor. Nezapomeňte ignorovat tuto nulovou velikost souboru.
V další části tohoto /proc
souborový systém, vysvětlím informace uvedené v souborech. Prozkoumat můžete i sami. Většina souborů má názvy, které popisují informace, které obsahují. Některé soubory jsou pro lidskou mysl cennější než jiné. Ne každý soubor má cpuinfo
nebo meminfo
-informace na úrovni v něm, které jsou cenné pro správce systému, ale informace jsou možná důležité pro vývojáře, výrobce hardwaru nebo pracovníky pro řešení problémů prodejců.
[ Potřebujete se dozvědět více o správě systému Linux? Zvažte absolvování kurzu správy systému Red Hat. ]