/proc: Difference between revisions
Line 58: | Line 58: | ||
==Protsessid== | ==Protsessid== | ||
Nagu eelpool mainitud, vastab iga | Nagu eelpool mainitud, vastab iga /proc/ kataloogis olev nummerdatud alamkataloog erinevale jooksvale '''protsessile''', kui protsess lõpetab töö, kaob antud protsessi ID-ga kataloog ka /proc/-ist. | ||
Näiteks võtame protsessi numbriga | Näiteks võtame protsessi numbriga 18083 ja vaatame antud kataloogi sise käsklusega '''ls'''. | ||
Saame väljundi: | Saame väljundi: | ||
Line 72: | Line 70: | ||
clear_refs environ limits mounts oom_score sched stat uid_map | clear_refs environ limits mounts oom_score sched stat uid_map | ||
cmdline exe loginuid mountstats oom_score_adj schedstat statm wchan | cmdline exe loginuid mountstats oom_score_adj schedstat statm wchan | ||
Igal nummerdatud alamkataloogil on sarnane failistruktuur. Nendest mõned: | |||
'''cmdline''' - Sisaldab käsklust koos parameetritega, millega protsesss käivitati. | |||
'''cwd''' - Symlink kataloogi, kus protsess töötab. | |||
'''exe''' - Symlink protsessi täitmisprogrammini. | |||
'''stat''' ja '''status''' - Sisaldavad informatsiooni protsessi oleku kohta. | |||
'''maps''', '''statm''' ja '''mem''' - Sisaldavad informatsiooni mälu kohta, mida protsess kasutab | |||
Selleks, et protsessi kohta rohkem informatsiooni saada, tuleks vaadata protsessi alamkataloogis olevat faili nimega '''status''' | Selleks, et protsessi kohta rohkem informatsiooni saada, tuleks vaadata protsessi alamkataloogis olevat faili nimega '''status''' | ||
Line 137: | Line 144: | ||
'''environ''' - keskkonnamuutujad | '''environ''' - keskkonnamuutujad | ||
'''limits''' - informatsioon protsessi limiitide kohta | '''limits''' - informatsioon protsessi limiitide kohta | ||
==Kasutatud allikad== | ==Kasutatud allikad== | ||
[http://man7.org/linux/man-pages/man5/proc.5.html Linux manual]<br> | [http://man7.org/linux/man-pages/man5/proc.5.html Linux manual]<br> |
Revision as of 17:55, 7 December 2016
Kirjeldus
/proc (process information pseudo-file system) on virtuaalne failisüsteem, milles asuvad virtuaalsed failid hoiavad endas informatsiooni Linuxi süsteemi kohta - kaasaarvatud tuuma, protsesside ja seadistusparameetrite kohta.
/proc/ kataloogis asuvad virtuaalsed failid on suurusega 0 baiti, kuid faili avades võib seal olla suurel hulgal informatsiooni - operatsioonisüsteem kuvab kõik detailid faildesse jooksvalt. Lisaks vastab enamike failide aja- ning kuupäevasätteid hetke ajale ning kuupäevale, mis viitab asjaolule, et faile uuendatakse pidevalt. Enamus kataloogis asuvatest failidest on ainult loetavad, kuid teatud failide kaudu on võimalik muuta ka tuuma parameetreid.
Lisaks failidele asuvad /proc/-is ka nummerdatud kataloogid. Iga nummerdatud kataloog esindab mingit protsessi ning kataloogi number vastab protsessi ID-le (PID).
Selleks, et vaadata /proc/ kataloogis asuvaid faile, 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 annavad informatsiooni süsteemi riistvara kohta. Teisalt, aga näiteks /proc/filesystems ning /proc/sys/ kataloogis olevad failid annavad 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 saada informatsiooni süsteemi mälu kohta, tuleks tal sisestada terminalis käsklus :
cat /proc/meminfo
Väljund käsklusele võib olla midagi sarnast:
MemTotal: 8052476 kB MemFree: 3556264 kB MemAvailable: 5647832 kB Buffers: 176760 kB Cached: 2419456 kB SwapCached: 0 kB Active: 2562260 kB Inactive: 1565064 kB Active(anon): 1535400 kB Inactive(anon): 401128 kB Active(file): 1026860 kB Inactive(file): 1163936 kB Unevictable: 32 kB Mlocked: 32 kB SwapTotal: 8266748 kB SwapFree: 8266748 kB ...
Antud väljundist saab üsna põhjaliku ülevaate süsteemi mälu kohta. Lisaks kasutavad antud informatsiooni näiteks käsklused top ja free. Näiteid võib tuua veelgi - käsklus uname koos oma erinevate parameetritega võtab informatsiooni /proc/version-ist, käsklus lsmod on sisuliselt sama, mis käskluse cat /proc/modules väljund ning uptime võtab ajaparameetrid /proc/uptime-st.
Protsessid
Nagu eelpool mainitud, vastab iga /proc/ kataloogis olev nummerdatud alamkataloog erinevale jooksvale protsessile, kui protsess lõpetab töö, kaob antud protsessi ID-ga kataloog ka /proc/-ist.
Näiteks võtame protsessi numbriga 18083 ja vaatame antud kataloogi sise käsklusega ls.
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
Igal nummerdatud alamkataloogil on sarnane failistruktuur. Nendest mõned:
cmdline - Sisaldab käsklust koos parameetritega, millega protsesss käivitati. cwd - Symlink kataloogi, kus protsess töötab. exe - Symlink protsessi täitmisprogrammini. stat ja status - Sisaldavad informatsiooni protsessi oleku kohta. maps, statm ja mem - Sisaldavad informatsiooni mälu kohta, mida protsess kasutab
Selleks, et protsessi kohta rohkem informatsiooni saada, tuleks vaadata protsessi alamkataloogis olevat faili nimega status
Käivitame terminalis järgmise käskluse:
cat /proc/1/status/
Saame järgmise väljundi:
ame: systemd State: S (sleeping) Tgid: 1 Ngid: 0 Pid: 1 PPid: 0 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 128 Groups: NStgid: 1 NSpid: 1 NSpgid: 1 NSsid: 1 VmPeak: 250848 kB VmSize: 185452 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 6256 kB VmRSS: 6136 kB VmData: 149204 kB VmStk: 136 kB VmExe: 1392 kB VmLib: 3664 kB VmPTE: 104 kB VmPMD: 16 kB VmSwap: 0 kB HugetlbPages: 0 kB Threads: 1 SigQ: 0/31033 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 7be3c0fe28014a03 SigIgn: 0000000000001000 SigCgt: 00000001800004ec CapInh: 0000000000000000 CapPrm: 0000003fffffffff CapEff: 0000003fffffffff 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: 1975 nonvoluntary_ctxt_switches: 473
Saame teada, et protsess kuulub systemd-le. Protsessi hetkeolek on sleeping' ning protsessi ID (PID) on 1. Lisaks saame me näha, kes protsessi jooksutab ning kuna mõlemad UID ning GID on 0, siis suulub antud protsess juurkasutajale (root).
Igal nummerdatud alamkataloogil on sarnane failistruktuur. Ning lisaks failile status asub seal veel erinevaid faile. Neist mõned:
environ - keskkonnamuutujad limits - informatsioon protsessi limiitide kohta
Kasutatud allikad
Linux manual
procfs explained]
Linux proc filesystem explained
Exploring proc in Linux