/proc
Kirjeldus
/proc (process information pseudo-file system) on virtuaalne failisüsteem, milles asuvad failid sisaldavad tuuma hetkeoleku kohta informatsiooni.
/proc/ kataloogis asuvad virtuaalsed failid. Enamus nendest failidest on suurusega 0 baiti, kuid faili avades võib seal olla suurel hulgl informatsiooni. Lisaks sellele enamus failide aja- ning kuupäeva sätteid vastab hetke ajale ning kuupäevale, mis viitab sellele, et faile uuendatakse pidevalt. Lisaks failidele asuvad /proc/-is ka nummerdatud kataloogid. Iga nummerdatud kataloog esindab mingit protsessi (PID).
Selleks, et vaadata /proc/ kataloogi sisse, tuleks sisestada terminali järgmine käsklus
ll /proc/
Osa väljundist:
... dr-xr-xr-x 9 root root 0 dets 3 22:55 11350/ dr-xr-xr-x 9 root root 0 dets 3 22:55 11588/ dr-xr-xr-x 9 root root 0 dets 4 2016 1177/ dr-xr-xr-x 9 root root 0 dets 4 2016 1183/ dr-xr-xr-x 9 root root 0 dets 4 2016 1187/ dr-xr-xr-x 9 root root 0 dets 3 22:55 11870/ dr-xr-xr-x 9 root root 0 dets 3 22:55 11894/ dr-xr-xr-x 9 root root 0 dets 4 2016 12/ dr-xr-xr-x 9 kasutaja kasutaja 0 dets 4 2016 1223/ ... -r--r--r-- 1 root root 0 dets 3 22:58 cpuinfo -r--r--r-- 1 root root 0 dets 3 22:58 crypto -r--r--r-- 1 root root 0 dets 3 22:58 devices ...
Failid
Virtuaalsed failid, nagu näiteks /proc/interrupts, /proc/meminfo, /proc/mount, /proc/partitions tagavad süsteemi riistvara kohta hetkelist informatsiooni. Teisalt, aga näiteks /proc/filesystems ning /proc/sys tagavad informatsiooni süsteemi konfiguratsiooni ning liideste kohta.
/proc/ kataloogis olevaid faile saab vaadata näiteks käskluste cat, more või less abil. Kui kasutaja soovib näiteks vaadata informatsiooni oma kesktöötlusseadme (CPU) kohta, tuleks tal sisestada terminalis käsklus cat /proc/cpuinfo
Väljund käsklusele võib olla midagi sarnast:
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 69 model name : Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz stepping : 1 microcode : 0x17 cpu MHz : 1826.792 cache size : 3072 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts bugs : bogomips : 4589.13 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management: ...
Nagu näha, sisaldab /proc/cpuinfo üsna palju informatsiooni kesktöötlusseadme kohta.
Protsessid
Nagu eelpool mainitud, vastab iga /proc/ kataloogis olev nummerdatud alamkataloog erinevale protsessile.
Näiteks võtame protsessi numbriga 3939 ja vaatame antud kataloogi. käivitame terminalis käskluse:
ls /proc/3939
Saame väljundi:
attr comm fd map_files net pagemap sessionid status autogroup coredump_filter fdinfo maps ns personality setgroups syscall auxv cpuset gid_map mem numa_maps projid_map smaps task cgroup cwd io mountinfo oom_adj root stack timers clear_refs environ limits mounts oom_score sched stat uid_map cmdline exe loginuid mountstats oom_score_adj schedstat statm wchan
Selleks, et protsessi kohta rohkem informatsiooni saada, tuleks vaadata protsessi alamkataloogis olevat faili nimega status
Käivitame terminalis järgmise käskluse:
cat /proc/3939/status/
Saame järgmise väljundi:
Name: redshift State: S (sleeping) Tgid: 3939 Ngid: 0 Pid: 3939 PPid: 3934 TracerPid: 0 Uid: 1000 1000 1000 1000 Gid: 1000 1000 1000 1000 FDSize: 64 Groups: 4 24 27 30 46 113 128 1000 NStgid: 3939 NSpid: 3939 NSpgid: 3934 NSsid: 2403 VmPeak: 60620 kB VmSize: 60516 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 4468 kB VmRSS: 4444 kB VmData: 296 kB VmStk: 140 kB VmExe: 48 kB VmLib: 8648 kB VmPTE: 132 kB VmPMD: 12 kB VmSwap: 0 kB HugetlbPages: 0 kB Threads: 1 SigQ: 0/31033 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000001010000 SigCgt: 0000000180004202 CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: 0000003fffffffff CapAmb: 0000000000000000 Seccomp: 0 Cpus_allowed: ff Cpus_allowed_list: 0-7 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 2408 nonvoluntary_ctxt_switches: 26