table of contents
PROC(5) | Linux - příručka programátora | PROC(5) |
JMÉNO¶
proc - pseudo souborový systém informací o procesech
POPIS¶
Souborový systém proc je pseudo souborový systém, který je používán jako interface k datovým strukturám jádra. Obvykle se připojuje do /proc. Většina jeho obsahu je pouze ke čtení, ale některé soubory umožňují změnit proměnné jadra.
Následující shrnutí rychle provede hierarchií /proc.
- /proc/[pid]
- Pro každý běžící proces existuje číselný podadresář pojmenovaný podle ID procesu. Každý podadresář obsahuje následující pseudosoubory a adresáře.
- /proc/[pid]/auxv (od 2.6.0-test7)
- Obsahuje informaci o ELF interpretu, která byla procesu při spuštění předána. Její formát je jedno unsigned long ID a jedna unsigned long hodnota pro každou položku. Poslední položka obsahuje dvě nuly.
- /proc/[pid]/cmdline
- Obsahuje celou příkazovou řádku procesu, pokud tedy proces není zombie. V takovém případě tento soubort neobsahuje nic, tj. čtení tohoto souboru vrátí 0 znaků. Argumenty příkazové řádky se v tomto souboru objevují jako sada řetězců oddělených pomocí null, která je ukončena dalším bajtem null po posledním řetězci.
- /proc/[pid]/coredump_filter (od jádra 2.6.23)
- Viz core(5).
- /proc/[pid]/cpuset (od jádra 2.6.12)
- Viz cpuset(7).
- /proc/[pid]/cwd
- Toto je symbolický odkaz na aktuální pracovní
adresář (current working directory) procesu. Např.
pro zjištění aktuálního
pracovního adresáře procesu 20 lze provést:
$ cd /proc/20/cwd; /bin/pwd
Prosím všimněte si, že příkaz pwd je často zabudovaným příkazem shellu a nemusí fungovat správně. V bashi lze použít pwd -P.
V případě vícevláknového procesu, jehož hlavní vlákno již skončilo (obvykle voláním pthread_exit(3)), již nebude obsah tohoto symbolického odkazu dostupný.
- /proc/[pid]/environ
- Tento soubor obsahuje proměnné prostředí
procesu. Jednotlivé údaje jsou odděleny znakem null
('\0') a znaky null mohou být i na konci. Takže pro
vytištění proměnných
prostředí procesu 1 se provede:
$ (cat /proc/1/environ; echo) | tr '\000' '\n'
- /proc/[pid]/exe
- V Linuxu 2.2 a novějším je tento soubor
symbolickým odkazem, který obsahuje skutečnou cestu
ke spuštěnému příkazu. Tento
symbolický odkaz lze normálně dereferencovat;
při pokusu jej otevřít je otevřen
spustitelný soubor, na který odkazuje. Je dokonce
možné napsat /proc/[pid]/exe a spustit tak
další kopii stejného spustitelného souboru,
který je již spuštěn procesem [pid]. V
případě vícevláknového procesu,
jehož hlavní vlákno již skončilo
(obvykle voláním pthread_exit(3)), již nebude
obsah tohoto symbolického odkazu dostupný.
V Linuxu do verze 2.0 včetně byl soubor /proc/[pid]/exe ukazatelem na spuštěný program a vypadal jako symbolický odkaz. Volání readlink(2) na tento soubor v Linuxu 2.0 vracelo řetězec ve tvaru:
[zařízení]:inodaNapříklad [0301]:1502 znamená inoda 1502 v zařízení s major číšlem 03 (IDE, MFM, a jiné disky) a minor číslem 01 (první oddíl prvního disku).
K nalezení souboru lze použít příkaz find(1) s volbou -inum.
- /proc/[pid]/fd
- Toto je podadresář, který obsahuje pro
každý soubor, který proces otevřel, jednu
položku, pojmenovanou po jeho deskriptoru souboru, který je
zároveň symbolickým odkazem na onen soubor.
Tudíž 0 odpovídá standardnímu vstupu, 1
standardnímu výstupu, 2 standardnímu chybovému
výstupu atd.
V případě vícevláknového procesu, jehož hlavní vlákno již skončilo (obvykle voláním pthread_exit(3)), již nebude obsah tohoto adresáře dostupný.
Programy, které vyžadují jméno souboru, ale nedokáží bez zvláštní volby pracovat se standardním vstupem anebo ty, které zapisují do souboru zadaného na příkazové řádce, ale pokud není zadán, neposílají výstup na standardní výstup tak mohou být přesvědčeny k použití standardního vstupu a/nebo výstupu pomocí /proc/[pid]/fd. Např. pokud je -i přepínač označující vstupní soubor a -o přepínač označující výstupní soubor:
$ foobar -i /proc/self/fd/0 -o /proc/self/fd/1 ...
a máte funkční filtr.
/proc/self/fd/N je v některých UNIXových a UNIX-like systémech zhruba to samé jako /dev/fd/N. Většina Linuxových MAKEDEV skriptů ve skutečnosti vytváří /dev/fd jako symbolický odkaz na /proc/self/fd.
Většina systémů poskytuje symbolické odkazy /dev/stdin, /dev/stdout a /dev/stderr, které ukazují na soubory 0, 1 a 2 v /proc/self/fd. Tudíž výše uvedený příklad lze zapsat i jako:
$ foobar -i /dev/stdin -o /dev/stdout ...
- /proc/[pid]/fdinfo/ (od jádra 2.6.22)
- Toto je podadresář, který obsahuje pro
každý soubor, který proces otevřel, jednu
položku, pojmenovanou po svém popisovači souboru.
Obsah každého souboru lze číst pro
získání informací o
příslušném popisovači souboru,
např.:
$ cat /proc/12015/fdinfo/4 pos: 1000 flags: 01002002
Pole pos je desítkové číslo ukazující aktuální offset souboru. Pole flags je osmičkové číslo ukazující přístupová práva souboru a stavové vlajky souboru (viz open(2)).
Soubory v tomto adresáři jsou čitelné pouze vlastníkem procesu.
- /proc/[pid]/limits (od jádra 2.6.24)
- tento soubor ukazuje soft limit, hard limit a jednotky měření každého limitu zdrojů procesu (viz getrlimit(2)). Soubor je chráněn, aby jej mohlo číst pouze skutečné UID procesu.
- /proc/[pid]/maps
- Soubor obsahující aktuálně namapované
oblasti paměti a jejich přístupová
práva.
Jeho formát je:
adresa práva ofset dev inoda cesta 08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm 08056000-08058000 rw-p 0000d000 03:0c 64593 /usr/sbin/gpm 08058000-0805b000 rwxp 00000000 00:00 0 40000000-40013000 r-xp 00000000 03:0c 4165 /lib/ld-2.2.4.so 40013000-40015000 rw-p 00012000 03:0c 4165 /lib/ld-2.2.4.so 4001f000-40135000 r-xp 00000000 03:0c 45494 /lib/libc-2.2.4.so 40135000-4013e000 rw-p 00115000 03:0c 45494 /lib/libc-2.2.4.so 4013e000-40142000 rw-p 00000000 00:00 0 bffff000-c0000000 rwxp 00000000 00:00 0
kde adresa je obsazený adresový prostor v procesu, práva jsou sada práv:
r = čtení (read) w = zápis (write) x = spuštění (execute) s = sdílení (shared) p = soukromý (private) (copy on write)
ofset znamená ofset v souboru/kdekoliv, dev je zařízení (major:minor) a inoda je inoda v tomto zařízení. 0 znamená, že s oblastí paměti není asociována žádná inoda, což je třeba v případě BSS (neinicializovaná data).
V Linuxu 2.0 žádné pole pro cestu neexistuje.
- /proc/[pid]/mem
- tento soubor může být použit pro přístup je stránkám paměti procesu pomocí open(2), read(2), a lseek(2).
- /proc/[pid]/mountinfo (od jádra 2.6.26)
- Tento soubor obsahuje informace o přípojných bodech.
Obsahuje řádky ve tvaru:
36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue (1)(2)(3) (4) (5) (6) (7) (8) (9) (10) (11)
- Čísla v závorkách jsou značky pro níže uvedené popisky:
- (1)
- mount ID: unikátní identifikátor připojení (po umount(2) může být znovu použit).
- (2)
- parent ID: ID rodičovského připojení (nebo vlastní v případě, že se jedná o vrchol připojovacího stromu).
- (3)
- major:minor: hodnota st_dev pro soubory v systému souborů (viz stat(2)).
- (4)
- root: kořen připojení v rámci systému souborů.
- (5)
- mount point: přípojný bod relativní ke kořeni procesu.
- (6)
- mount options: volby specifické pro připojení.
- (7)
- volitelné položky: nula nebo véce položek ve tvaru "tag[:hodota]".
- (8)
- oddělovač: označuje konec volitelných položek.
- (9)
- typ systému souborů: jméno systému souborů ve tvaru "typ[.podtyp]".
- (10)
- mount source: informace specifická pro systém souborů nebo "none".
- (11)
- super options: volby pro superblok.
- Parsery by měly ignorovat všechny nerozeznané volitelné položky. V současnosti jsou možné tyto volitelné položky:
- připojení je sdílené skupinou X
- master:X
- skupina X je master-em připojení
- propagate_from:X
- připojení je slave a dědí nastavení (FIXME - ověřit překlad) ze skupiny X (*)
- unbindable
- mount is unbindable
- (*) X je nejbližší dominantní skupina pod
kořenem procesu. Pokud je X bezprostředním master-em
připojení nebo pokud pod kořenem procesu není
žádná dominantní skupina, pak je
přítomna pouze položka "master:X" a nikoliv
"propagate_from:X".
Více informací o dědění připojení je uvedeno v: Documentation/filesystems/sharedsubtree.txt ve zdrojovém kódu jádra.
- /proc/[pid]/mounts (od jádra 2.4.19)
- Toto je seznam všech souborových systémů aktuálně připojených ve jmenném prostory procesu. Formát tohoto souboru je dokumentován v fstab(5). Od verze jádra 2.6.15 je tento soubor pollable: po otevření souboru ke čtení způsobí změna v tomto souboru (např. připojení nebo odpojení souborového systému), že select(2) označí deskriptor souboru jako čitelný a volání poll(2) a epoll_wait(2) označí soubor jako mající chybovou podmínku. (pozn. překl. pokud to někdo dokážete přeložit lépe, pošlete opravu)
- /proc/[pid]/mountstats (od jádra 2.6.17)
- Tento soubor zpřístupňuje informace (statistiky,
informace o konfiguraci) o přípojných bodech ve
jmenném prostoru procesu. Obsahuje řádky ve tvaru:
device /dev/sda7 mounted on /home with fstype ext3 [statistics] ( 1 ) ( 2 ) (3 ) (4)
- Položky v každém řádku jsou:
- (1)
- Jméno připojeného zařízení (nebo "nodevice", pokud není žádné odpovídající zařízení).
- (2)
- Bod připojení v rámci stromu systému souborů.
- (3)
- Typ systému souborů.
- (4)
- Volitelné statistiky a informace o konfiguraci. Aktuálně (jádro 2.6.26), používá tuto položku jen sytém souborů NFS.
- Tento soubor je čitelný pouze vlastníkem procesu.
- /proc/[pid]/numa_maps (od jádra 2.6.14)
- viz numa(7).
- /proc/[pid]/oom_adj (od jádra 2.6.11)
- Tento soubor se používá k upravení skóre použitého pro určení procesu, který má být zabit v případě, že dojde paměť (out-of-memory (OOM)). Jádro použije tuto hodnotu k bitovému posunu hodnoty oom_score procesu: platné hodnoty jsou v rozsahu -16 až +15, plus speciální hodnota -17, která OOM-zabití tohoto procesu zakáže. Kladné skóre zvyšuje pravděpodobnost zabití procesu OOM-zabijákem, negativní skóre ji snižuje. Výchozí hodnotou pro tento soubor je 0; nový proces dědí nastavení oom_adj svého rodiče. Proces musí být privilegovaný (CAP_SYS_RESOURCE), aby mohl tento soubor měnit.
- /proc/[pid]/oom_score (od jádra 2.6.11)
- tento soubor ukazuje aktuální skóre přidělené procesu jádrem za účelem výběru procesu pro OOM-zabijáka. Vyšší skóre znamená vyšší pravděpodobnost zabití OOM-zabijákem. Základem pro toto skóre je množství paměti zabrané procesem; skóre se zvyšuje (+) nebo snižuje (-) v závislosti na faktorech zahrnujících:
- jestli proces vytváří mnoho potomků pomocí fork(2) (+);
- jestli proces běží dlouhou dobu nebo zabíral hodně času CPU (-);
- jestli má proces nízkou hodnotu nice (tj. > 0) (+);
- jestli je proces privilegovaný (-); a
- jestli proces provádí přímý přístup k hardware (-).
- oom_score také odráží bitový posun určený hodnotou oom_adj procesu.
- /proc/[pid]/root
- Unix a Linux podporují ideu vlastního
kořenového adresáře souborového
systému pro každý proces, nastaveného
systémovým voláním chroot(2). Tento
soubor je symbolickým odkazem na kořenový
adresář procesu a chová se stejně jako exe,
fd/*, atd.
V případě vícevláknového procesu, jehož hlavní vlákno již skončilo (obvykle voláním pthread_exit(3)), již nebude obsah tohoto symbolického odkazu dostupný.
- /proc/[pid]/smaps (od jádra 2.6.14)
- Tento soubor obsahuje spotřebu paměti pro
každé namapování procesu. Pro
každé namapování jsou přítomny
řádky jako:
08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash Size: 464 kB Rss: 424 kB Shared_Clean: 424 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB
První řádek ukazuje stejnou informaci jako je uvedená v namapování v /proc/[pid]/maps. Zbývající řádky ukazují velikost tohoto namapování, velikost namapování, které je aktuálně rezidentní v RAM, počet clean a dirty sdílených stránek v namapování a počet clean a dirty privátních stránek v namapování.Tento soubor je přítomen pouze pokud je zapnuta konfigurační volba jádra CONFIG_MMU.
- /proc/[pid]/stat
- Stavová informace o procesu. Používá ji
ps(1). Je definována v
/usr/src/linux/fs/proc/array.c.
Její položky, v pořadí a formátu určeném ve scanf(3) jsou:
- pid %d
- ID procesu.
- comm %s
- Jméno spuštěného souboru, v závorkách. Je viditelné i pokud je spuštěný soubor odswapován.
- stav %c
- Jeden ze znaků "RSDZTW", kde R znamená běžící (running), S je přerušitelně spící (sleeping), D znamená čekající v nepřerušitelném diskovém spánku, Z je zombie, T znamená trasovaný (traced) nebo zastavený (signálem) a W znamená swapovaný (paging).
- ppid %d
- ID rodičovského procesu.
- pgrp %d
- ID skupiny procesu daného procesu.
- session %d
- Session ID procesu.
- tty_nr %d
- Ovládací terminál procesu. (minor číslo zařízení je obsaženo v bitech 31 až 20 a 7 až 0; major číslo zařízení je v bitech 15 až 8.)
- tpgid %d
- The ID of the foreground process group of the controlling terminal of the process.
- flags %u (%lu před jádrem 2.6.22)
- Slovo obsahující příznaky jádra (flags) procesu. Významy jednotlivých bitů jsou uvedeny v definicích PF_* v <linux/sched.h>. Podrobnosti závisí na verzi jádra.
- minflt %lu
- Počet méně závažných chyb, kterých se proces dopustil, a které si nevyžádaly načtení stránky paměti z disku.
- cminflt %lu
- Počet méně závažných chyb, které provedli potomci procesu, na které proces čekal.
- majflt %lu
- Počet závažných chyb, kterých se proces dopustil, a které si vyžádaly načtení stránky paměti z disku.
- cmajflt %lu
- Počet závažných chyb, které provedli potomci procesu, na které proces čekal.
- utime %lu
- Množství času, který proces strávil v uživatelském režimu, měřené v clock ticks (nutno vydělit hodnotou sysconf(_SC_CLK_TCK). To zahrnuje guest time, guest_time (čas strávený během virtuálního CPU, viz níže), takže aplikace, které nepočítají s položkou guest time zahrnou tento čas do svých výpočtů.
- stime %lu
- Množství času, které proces strávil v jaderném režimu, měřené v clock ticks (nutno vydělit hodnotou sysconf(_SC_CLK_TCK).
- cutime %ld
- Množství času, strávené potomky, na které proces čekal, v uživatelském režimu, měřené v clock ticks (nutno vydělit hodnotou sysconf(_SC_CLK_TCK). (Viz též times(2).) To zahrnuje guest time, cguest_time (čas strávený během virtuálního CPU, viz níže).
- cstime %ld
- Množství času, strávené potomky, na které proces čekal, v jaderném režimu, měřené v clock ticks (nutno vydělit hodnotou sysconf(_SC_CLK_TCK).
- priority %ld
- (Vysvětlení pro Linux 2.6) Pro procesy s real-time
plánovací politikou (policy níže; viz
sched_setscheduler(2)) je toto negovaná
plánovací priorita mínus jedna - tj.
číslo od -2 do -100, odpovídající
real-time prioritiám 1 až 99. Pro procesy s ne-rel-time
plánovací politikou je toto surová hodnota nice
(setpriority(2)) tak, jak je reprezentovaná v jádru.
Jádro skladuje hodnoty nice jako čísla v rozsahu 0
(vysoká) až 39 (nízká),
odpovádající rozsahu -20 až 19, která
je prezentován uživateli.
Před jádrem 2.6 to byla hodnota založená na váze přidělené procesu plánovačem.
- nice %ld
- Hodnota nice (viz setpriority(2)), hodnota v rozsahu 19 (nízká priorita) až -20 (vysoká priorita).
- num_threads %ld
- Počet vláken v tomto procesu (od jádra 2.6). Před jádrem 2.6 bylo toto pole pevně dané jako 0 jako zástupce dříve odstraněného pole.
- itrealvalue %ld
- Čas v jednotkách jiffies před odesláním dalšího SIGALRM procesu, na základě intervalového časovače. Od jádra 2.6.17 není toto pole udržováno a je pevně dáno jako 0.
- starttime %llu (bylo %lu před jádrem 2.6)
- Čas v jednotkách jiffies kdy byl proces po spuštění systému spuštěn.
- vsize %lu
- Velikost virtuální paměti v bajtech.
- rss %ld
- Resident Set Size: počet stránek, které má proces ve fyzické paměti. Toto jsou pouze stránky obsahující text, data nebo stack. Nejsou zahrnuty stránky, které byly načteny na základě požadavku nebo odswapované stránky.
- rsslim %lu
- Aktuální soft limit na rss procesu v bajtech. Viz popis RLIMIT_RSS v getpriority(2).
- startcode %lu
- Adresa, nad kterou může text programu běžet.
- endcode %lu
- Adresa, pod kterou může text programu běžet.
- startstack %lu
- Adresa začátku (tj. spodku) zásobníku.
- kstkesp %lu
- Aktuální hodnota ESP (stack pointer), jak je uvedena ve stránce s jaderným zásobníkem pro proces.
- kstkeip %lu
- Aktuální EIP (instruction pointer).
- signal %lu
- Bitmapa nezpracovaných signálů, zobrazená jako desítkové číslo. Zastaralé, protože neposkytuje informaci o real-time signálech; použijte raději /proc/[pid]/status.
- blocked %lu
- Bitmapa blokovaných signálů, zobrazená jako desítkové číslo. Zastaralé, protože neposkytuje informaci o real-time signálech; použijte raději /proc/[pid]/status.
- sigignore %lu
- Bitmapa ignorovaných signálů, zobrazená jako desítkové číslo. Zastaralé, protože neposkytuje informaci o real-time signálech; použijte raději /proc/[pid]/status.
- sigcatch %lu
- Bitmapa zachycených signálů, zobrazená jako desítkové číslo. Zastaralé, protože neposkytuje informaci o real-time signálech; použijte raději /proc/[pid]/status.
- wchan %lu
- Toto je "kanál" ("channel"), ve kterém proces čeká. Je to adresa systémového volání a může být nalezena v seznamu názvů, pokud je její textový název potřeba. (Pokud máte aktuální /etc/psdatabase, tak zkuste ps -l a uvidíte položku WCHAN v akci.)
- nswap %lu
- Počet odswapovaných stránek (not maintained).
- cnswap %lu
- Kumulativní nswap pro procesy potomků (not maintained).
- exit_signal %d (od jádra 2.1.22)
- Signál, který se pošle rodiči, když proces zemře.
- processor %d (od jádra 2.2.8)
- Číslo procesoru na kterém byl naposledy spuštěn.
- rt_priority %u (od jádra 2.5.19; bylo %lu před jádrem 2.6.22)
- Real-time plánovací priorita, číslo v rozsahu 1 až 99 pro procesy plánované real-time politikou, nebo 0, pro ne-real-time procesy (viz sched_setscheduler(2)).
- policy %u (od jádra 2.5.19; bylo %lu před jádrem 2.6.22)
- Plánovací politika (viz sched_setscheduler(2)). Dekódujte pomocí konstant SCHED_* v linux/sched.h.
- delayacct_blkio_ticks %llu (od jádra 2.6.18)
- Agregovaná zpoždění blokových I/O (měřená v clock ticks (setiny vteřiny)).
- guest_time %lu (od jádra 2.6.24)
- Guest time procesu (množství času, strávené během virtuálního CPU pro hostovaný operační systém), měřené v clock ticks (nutno vydělit hodnotou sysconf(_SC_CLK_TCK).
- cguest_time %ld (od jádra 2.6.24)
- Guest time potomků procesu, měřené v clock ticks (nutno vydělit hodnotou sysconf(_SC_CLK_TCK).
- /proc/[pid]/statm
- Poskytuje informaci o využití paměti,
měřeno ve stránkách. Sloupce jsou:
size celková velikost programu (stejné jako VmSize v /proc/[pid]/status) resident resident set size (stejné jako VmSize v /proc/[pid]/status) share sdílené stránky (from shared mapping) text text (kód) lib knihovna (v jádře 2.6 se nepoužívá) data data +stack dt dirty pages (v jádře 2.6 se nepoužívá)
- /proc/[pid]/status
- Poskytuje většinu informací z /proc/[pid]/stat
a /proc/[pid]/statm v lidštějším
formátu. Příklad:
$ cat /proc/$$/status Name: bash State: S (sleeping) Tgid: 3515 Pid: 3515 PPid: 3452 TracerPid: 0 Uid: 1000 1000 1000 1000 Gid: 100 100 100 100 FDSize: 256 Groups: 16 33 100 VmPeak: 9136 kB VmSize: 7896 kB VmLck: 0 kB VmHWM: 7572 kB VmRSS: 6316 kB VmData: 5224 kB VmStk: 88 kB VmExe: 572 kB VmLib: 1708 kB VmPTE: 20 kB Threads: 1 SigQ: 0/3067 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000010000 SigIgn: 0000000000384004 SigCgt: 000000004b813efb CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: ffffffffffffffff Cpus_allowed: 00000001 Cpus_allowed_list: 0 Mems_allowed: 1 Mems_allowed_list: 0 voluntary_ctxt_switches: 150 nonvoluntary_ctxt_switches: 545
- Položky jsou:
- Name: Příkazy spuštěné tímto procesem.
- State: Aktuální stav procesu. Jeden ze znaků "RSDTZX", kde R znamená běžící (running), S je přerušitelně spící (sleeping), D znamená čekající v nepřerušitelném diskovém spánku, T znamená trasovaný (traced) nebo zastavený (signálem), Z je zombie a X znamená mrtvý.
- Tgid: ID skupiny vláken (tj. ID procesu).
- Pid: ID vlákna (viz gettid(2)).
- TracerPid: PID procesu kterým je tento proces trasuován (0 pokud není trasován).
- Uid, Gid: Real, effective, saved set, and file system UIDs (GIDs).
- FDSize: Počet aktuálně alokovaných slotů popisovače souboru.
- Groups: Doplňkový seznam skupin.
- VmPeak: Maximální velikost virtuální paměti.
- VmSize: Velikost virtuální paměti.
- VmLck: Velikost Locked memory.
- VmHWM: Maximální resident set size ("high water mark").
- VmRSS: Resident set size.
- VmData, VmStk, VmExe: Size of data, stack, and text segments.
- VmLib: Shared library code size.
- VmPTE: Page table entries size (od jádra 2.6.10).
- Threads: Počet vláken v procesu obsahujícím toto vlákno.
- SigPnd, ShdPnd: Počet nezpracovaných signálů pro vlákno a pro celý proces (viz pthreads(7) a signal(7)).
- SigBlk, SigIgn, SigCgt: Masky udávající blokované, ignorované a zachytávané signály (viz signal(7)).
- CapInh, CapPrm, CapEff: Masks of capabilities enabled in inheritable, permitted, and effective sets (see capabilities(7)).
- CapBnd: Capability Bounding set (since kernel 2.6.26, see capabilities(7)).
- Cpus_allowed: Mask of CPUs on which this process may run (since Linux 2.6.24, see cpuset(7)).
- Cpus_allowed_list: Same as previous, but in "list format" (since Linux 2.6.26, see cpuset(7)).
- Mems_allowed: Mask of memory nodes allowed to this process (since Linux 2.6.24, see cpuset(7)).
- Mems_allowed_list: Same as previous, but in "list format" (since Linux 2.6.26, see cpuset(7)).
- voluntary_context_switches, nonvoluntary_context_switches: Number of voluntary and involuntary context switches (since Linux 2.6.23).
- /proc/[pid]/task (od jádra 2.6.0-test6)
- Adresář obsahující pro každé
vlákno procesu jeden podadresář. Jména
podadresářů jsou číselná ID
vlákna([tid]) (viz gettid(2)). V každém
z těchto podadresářů je sada souborů s
názvy a obsahem jako u adresářů
/proc/[pid]. Pro atributy společné všem
vláknům jsou obsahy všech souborů v
podadresářích task/[tid] stejné jako v
odpovídajícím souboru rodičovského
adresáře /proc/[pid] (např. u
vícevláknového procesu obsahují všchny
soubory task/[tid]/cwd stejnou hodnotu jako soubor
/proc/[pid]/cwd v nadřazeném adresáři,
jelikož všechna vlákna v procesu mají
stejný pracovní adresář). U atributů,
které se pro každé vlákno liší,
mohou odpovídající soubory v task/[tid]
obsahovat různé hodnoty (např. položky v
souborech task/[tid]/status se mohou pro každé
vlákno lišit).
V případě vícevláknového procesu, jehož hlavní vlákno již skončilo (obvykle voláním pthread_exit(3)), již nebude obsah adresáře /proc/[pid]/task dostupný.
- /proc/apm
- Pokud bylo při kompilaci jádra definováno CONFIG_APM, obsahuje číslo verze Advanced power managementu a informace o baterii.
- /proc/bus
- Obsahuje podadresáře pro instalované sběrnice.
- /proc/bus/pccard
- Podadresář pro pcmcia zařízení, pokud bylo při kompilaci jádra nastaveno CONFIG_PCMCIA.
- /proc/bus/pccard/drivers
- /proc/bus/pci
- Obsahuje různé podadresáře sběrnic a pseudo-soubory obsahující informace o sběrnicích pci, instalovaných zařízeních a ovladačích zařízení. Některé z těchto souborů nejsou textové.
- /proc/bus/pci/devices
- Informace o pci zařízeních. Lze k nim přistupovat pomocí lspci(8) a setpci(8).
- /proc/cmdline
- Argumenty předané linuxovému jádru při jeho zavedení, často pomocí zaváděcího programu jako je třeba lilo(8) nebo grub(8).
- /proc/config.gz (od jádra 2.6)
- This file exposes the configuration options that were used to build the
currently running kernel, in the same format as they would be shown in the
.config file that resulted when configuring the kernel (using
make xconfig, make config, or similar). The file
contents are compressed; view or search them using zcat(1),
zgrep(1), etc. As long as no changes have been made to the
following file, the contents of /proc/config.gz are the same as
those provided by :
cat /lib/modules/$(uname -r)/build/.config
- /proc/config.gz is only provided if the kernel is configured with CONFIG_IKCONFIG_PROC.
- /proc/cpuinfo
- Toto je sbírka údajů závislých na CPU a systémové architektuře, každá podporovaná architektura obsahuje jiné položky. Obvyklými položkami jsou processor, který udává počet CPU a bogomips, což je systémová konstanta vypočtená při inicializaci jádra. Stroje s více jádry (SMP) mají údaje pro každé CPU.
- /proc/devices
- textový seznam hlavních čísel a skupin zařízení. Může být použit skripty MAKEDEV pro konzistenci s jádrem.
- /proc/diskstats (od jádra 2.5.69)
- tento soubor obsahuje vstupně-výstupní statistiky pro každé diskové zařízení. Další informace jsou uvedeny ve zdrojovém souboru jádra Documentation/iostats.txt.
- /proc/dma
- Seznam registrovaných ISA DMA (direct memory access) kanálů, které jsou používány.
- /proc/driver
- Prázdný podadresář.
- /proc/execdomains
- List of the execution domains (ABI personalities).
- /proc/fb
- Informace frame bufferu, pokud bylo při kompilaci jádra definováno CONFIG_FB.
- /proc/filesystems
- Textový seznam souborových systémů
podporovaných jádrem, tj. zakompilovaných do
jádra nebo jejichž jaderné moduly jsou
právě načteny (Viz též
filesystems(5).) Pokud je souborový systém
označen "nodev", znamená to, že
nevyžaduje, aby bylo připojeno blokové
zařízení (např. virtuální
souborový systém, síťový
souborový systém).
Shodou okolností může být používán programem mount(8), pokud nebyl zadán žádný souborový systém a nepodařilo se mu určit druh souborového systému. V tom případě zkouší souborové systémy obsažené v tomto souboru (s výjimkou těch označených "nodev").
- /proc/fs
- Prázdný podadresář.
- /proc/ide
- Tento adresář je přítomen v systémech
se sběrnicí ide. Pro každý ide kanál a
připojené zařízení existuje
adresář. Soubory jsou:
cache velikost vyrovnávací paměti v KB capacity počet sektorů driver verze ovladače geometry fyzická a logická geometrie identify v šestnáctkové soustavě media druh média model číslo modelu výrobce settings nastavení jednotky smart_thresholds v šestnáctkové soustavě smart_values v šestnáctkové soustavě
Příkaz hdparm(8) poskytuje přístup k těmto informacím v přístupnějším formátu.
- /proc/interrupts
- This is used to record the number of interrupts per CPU per IO device. Since Linux 2.6.24, for the i386 and x86_64 architectures, at least, this also includes interrupts internal to the system (that is, not associated with a device as such), such as NMI (nonmaskable interrupt), LOC (local timer interrupt), and for SMP systems, TLB (TLB flush interrupt), RES (rescheduling interrupt), CAL (remote function call interrupt), and possibly others. Very easy to read formatting, done in ASCII.
- /proc/iomem
- I/O mapa paměti v Linuxu 2.4.
- /proc/ioports
- Seznam aktuálně registrovaných oblastí I/O portů, které jsou používány.
- /proc/kallsyms (od jádra 2.5.71)
- Obsahuje exportované definice symbolů jádra používané nástroji modules(X) k dynamickému odkazování a vázání načítaných modulů. V jádře 2.5.47 a dřívějších se podobný soubor s lehce odlišnou syntaxí jmenoval ksyms.
- /proc/kcore
- Tento soubor reprezentuje fyzickou paměť systému a je
uložen ve formátu ELF core. S tímto pseudo-souborem a
nestripovaným jádrem (/usr/src/linux/vmlinux)
může být GDB použit ke zkoumání
aktuálního stavu jakékoliv datové struktury
jádra.
Celková velikost souboru je rovna velikosti fyzické paměti (RAM) plus 4KB.
- /proc/kmsg
- Tento soubor může být použit místo
systémového volání syslog(2) ke
čtení zpráv jádra. Proces, který chce
číst tento soubor, musí mít práva
superuživatele a tento soubor by měl být čten
pouze jedním procesem. Tento soubor by neměl být
čten, pokud je spuštěn proces syslog, který
používá systémové volání
syslog(2) k zaznamenávání zpráv
jádra.
Informace z tohoto souboru získává program dmesg(8).
- /proc/ksyms (Linux 1.1.23-2.5.47)
- Viz /proc/kallsyms.
- /proc/loadavg
- První tři položky v tomto souboru jsou hodnoty průměrné zátěže (load average) udávající počet úkolů (jobs) čekajících ve frontě na spuštění (stav R) nebo čekajících na čtení/zápis disku (stav D), zprůměrované po 1, 5 a 15 minutách. Jsou to stejné hodnoty, jako poskytuje uptime(1) a další programy. Čtvrté pole se skládá ze dvou čísel oddělených lomítkem (/). První představuje počet současně vykonávaných entit plánovače jádra (procesů, vláken); bude menší nebo rovno počtu CPU. Hodnota za lomítkem je počet entit plánovače jádra, aktuálně přítomných v systému. Páté pole je PID systémem naposledy vytvořeného procesu.
- /proc/locks
- Tento soubor ukazuje aktuální zámky souborů (file locks) (flock(2) a fcntl(2)) a leases (fcntl(2)).
- /proc/malloc (pouze do jádra 2.2 včetně)
- Tento soubor je přítomen pouze pokud bylo při kompilaci definováno CONFIG_DEBUG_MALLOC.
- /proc/meminfo
- Tento soubor udává statistiky o využití paměti v systému. Používá jej free(1) pro informaci o velikosti volné a používané paměti (fyzické i swapu) v systému, stejně jako sdílené paměti a vyrovnávacích pamětí jádra.
- /proc/mounts
- Před uvedením jádra 2.4.19 obsahoval tento soubor seznam všech souborových systémů aktuálně připojených v systému. Se zavedením jmenných prostorů připojení pro každý proces v jádře 2.4.19 se tento soubor stal odkazem na /proc/self/mounts, který obsahuje přípojné body jmenného prostoru připojení procesu. Formát tohoto souboru je dokumentován v fstab(5).
- /proc/modules
- Textový seznam modulů nahraných systémem. Viz též lsmod(8).
- /proc/mtrr
- Memory Type Range Registers. Podrobnosti jsou uvedeny v Documentation/mtrr.txt.
- /proc/net
- různé pseudo-soubory, které udávají stav některé části síťové vrstvy. Tyto soubory obsahují ASCII struktury, a proto je možné je číst příkazem cat(1). Nicméně standardní příkaz netstat(8) poskytuje k těmto souborům čistší přístup.
- /proc/net/arp
- Obsahuje textový výpis ARP tabulky jádra,
používané pro překlad adres. Obsahuje
dynamicky zjištěné i předprogramované
ARP položky. Jeho formát je:
IP adresa Druh HW Příznaky HW adresa Maska Zařízení 192.168.0.50 0x1 0x2 00:50:BF:25:68:F3 * eth0 192.168.0.250 0x1 0xc 00:00:00:00:00:00 * eth0
"IP adresa" je IPv4 adresa počítače a "Druh HW" je druh hardwarové adresy podle RFC 826. Příznaky jsou interními příznaky ARP struktur (tak, jak jsou definovány v /usr/include/linux/if_arp.h) a "HW adresa" je namapování datové vrstvy pro danou IP adresu, pokud je známo.
- /proc/net/dev
- Pseudo-soubor dev obsahuje stavové informace
síťových zařízení - počet
přijatých a odeslaných paketů, počet
chyb a kolizí a další základní
statistiky. Používá je program ifconfig(8) pro
uvádění stavu zařízení. Jeho
formát je:
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 2776770 11307 0 0 0 0 0 0 2776770 11307 0 0 0 0 0 0
eth0: 1215645 2751 0 0 0 0 0 0 1782404 4324 0 0 0 427 0 0
ppp0: 1622270 5552 1 0 0 0 0 0 354130 5669 0 0 0 0 0 0
tap0: 7714 81 0 0 0 0 0 0 7714 81 0 0 0 0 0 0
- /proc/net/dev_mcast
- Je definován v /usr/src/linux/net/core/dev_mcast.c:
indx interface_name dmi_u dmi_g dmi_address 2 eth0 1 0 01005e000001 3 eth1 1 0 01005e000001 4 eth2 1 0 01005e000001
- /proc/net/igmp
- Internet Group Management Protocol. Je definován v /usr/src/linux/net/core/igmp.c.
- /proc/net/rarp
- Tento soubor používá stejný formát jako soubor arp a obsahuje aktuální databázi zpětného mapování, užívanou programem rarp(8) k reverznímu vyhledávání adres. Pokud není RARP nakonfigurován v jádře, není tento soubor přítomen.
- /proc/net/raw
- Obsahuje výpis tabulky RAW socketů. Většina informací má význam pouze pro ladění. Hodnota "sl" je kernel hash slot pro socket, "local_address" je lokální adresa a číslo protokolu. "St" znamená interní stav socketu. "tx_queue" a "rx_queue" jsou příchozí a odchozí fronty dat vyjádřené jako využití paměti jádrem. Pole "tr", "tm->when" a "rexmits" nejsou v RAW používána. Pole "uid" obsahuje platný UID tvůrce socketu.
- /proc/net/snmp
- Tento soubor obsahuje ASCII data potřebná pro řízení informací o IP, ICMP, TCP a UDP pro SNMP agenta.
- /proc/net/tcp
- Obsahuje výpis z tabulky TCP socketů. Většina informací má význam pouze pro ladění. Hodnota "sl" je kernel hash slot pro socket, "local_address" je lokální adresa a číslo protokolu. "rem_address" je vzdálená adresa a číslo portu (pokud je připojen). "St" znamená interní stav socketu. "tx_queue" a "rx_queue" jsou příchozí a odchozí fronty dat vyjádřené jako využití paměti jádrem. Pole "tr", "tm->when" a "rexmits" obsahují interní informace o stavech socketů jádra a mají význam pouze pro ladění. Pole "uid" obsahuje platný UID tvůrce socketu.
- /proc/net/udp
- Obsahuje výpis z tabulky UDP socketů. Většina
informací má význam pouze pro ladění.
Hodnota 'sl' je kernel hash slot pro socket, 'local_address' je
lokální adresa a číslo portu.
"rem_address" je vzdálená adresa a
číslo portu (pokud je připojen). "St"
znamená interní stav socketu. "tx_queue" a
"rx_queue" jsou příchozí a odchozí
fronty dat vyjádřené jako využití
paměti jádrem. Pole "tr", "tm->when"
a "rexmits" nejsou RAW používána. Pole
"uid" obsahuje platný UID tvůrce socketu. Jeho
formát je:
sl local_address rem_address st tx_queue rx_queue tr rexmits tm->when uid
1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0
- /proc/net/unix
- Obsahuje seznam UNIX domain socketů přítomných
v systému a jejich status. Jeho formát je:
Num RefCount Protocol Flags Type St Path
0: 00000002 00000000 00000000 0001 03
1: 00000001 00000000 00010000 0001 01 /dev/printer"Num" znamená číslo slotu v tabulce jádra, "RefCount" je počet uživatelů socketu, "Protocol" je v současnosti vždycky 0, "Flags" ukazuje interní vlajky jádra, které vyjadřují stav socketu. V současnosti je "Type" vždycky "1" (sockety pro Unixové doménové datagramy ještě jádro nepodporuje). "St" je interní stav socketu a "Path" je cesta přidělená socketu (pokud je) (bound path).
- /proc/partitions
- Obsahuje hlavní a vedlejší čísla každého oddílu, počet bloků a název oddílu.
- /proc/pci
- Výpis všech PCI zařízení
nalezených během inicializace jádra, spolu s jejich
konfigurací.
Tento soubor byl označen jako zastaralý ve prospěch nového /proc rozhraní pro PCI (/proc/bus/pci). Stal se voliteným v jádře 2.2 (dostupný s volbou CONFIG_PCI_OLD_PROC nastavenou při kompilaci jádra). Byl nevolitelně povolen v jádře 2.4. Poté byl v jádře 2.6 označen jako zastaralý (stále dostupný s volbou CONFIG_PCI_LEGACY_PROC) a konečně úplně odstraněn od jádra 2.6.17.
- /proc/scsi
- Adresář se
středněúrovňovým pseudo-souborem
scsi a různými adresáři
nízkoúrovňových SCSI ovladačů,
které obsahují jeden soubor pro každé SCSI
zařízení přítomné v
systému; všechny obsahují status nějaké
části SCSI IO subsystému. Tyto soubory
obsahují ACSII struktury a pro jejich čtení je tedy
možné použít cat(1).
Do některých těchto souborů je také možné zapisovat a překonfigurovat tak daný subsystém či vypnout a zapnout některé vlastnosti.
- /proc/scsi/scsi
- Výpis všech SCSI zařízení, o
kterých jádro ví. Je podobný výpisu
při zavádění systému. scsi
momentálně podporuje pouze příkaz
add-single-device, který umožňuje
uživateli root přidat zařízení
připojené za chodu do seznamu známých
zařízení.
Příkaz
echo 'scsi add-single-device 1 0 5 0' > /proc/scsi/scsi
způsobí, že hostitel scsi1 bude v SCSI kanálu 0 hledat zařízení s ID 5 LUN 0. Pokud je již na této adrese známé zařízení nebo adresa není platná, je vrácena chyba. - /proc/scsi/[název_ovladače]
- [název_ovladače] může být
momentálně NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx,
buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug,
seagate, t128, u15-24f, ultrastore nebo wd7000. Tyto
adresáře se objeví pro každý
ovladač, který zaregistroval alespoň jeden SCSI HBA.
Každý adresář obsahuje jeden soubor pro
každého zaregistrovaného hostitele.
Každý tento soubor je pojmenován po
číslu, které bylo hostiteli přiděleno
během inicializace.
Čtením těchto souborů se obvykle zjistí konfigurace ovladače a hostitele, statistiky atd.
Zápis do těchto souborů umožňuje u různých hostitelů různé věci. Například příkazy latency a nolatency může root zapnout a vypnout kód pro měření latence příkazů v ovladači eata_dma. Příkazy lockup a unlock může root ovládat zaseknutí (lockups) sběrnice simulované ovladačem scsi_debug.
- /proc/self
- Tento adresář odkazuje na proces, který přistupuje k souborovému systému /proc a je shodný s adresářem v /proc pojmenovaném po ID tohoto procesu.
- /proc/slabinfo
- Informace o vyrovnávacích pamětech jádra. Od
jádra 2.6.16 je tento soubor přítomen pouze pokud je
zapnuta volba CONFIG_SLAB. Sloupce v /proc/slabinfo jsou:
cache-name num-active-objs total-objs object-size num-active-slabs total-slabs num-pages-per-slab
Viz slabinfo(5) pro další informace.
- /proc/stat
- statistiky jádra/systému. Liší se podle architektury. Obvyklé záznamy zahrnují:
- cpu 3357 0 4313 1362393
- Doba, měřená v jednotkách USER_HZ (1/100
vteřiny na většině architektur,
použijte sysconf(_SC_CLK_TCK) pro aktuální
hodnotu), kterou systém strávil v uživatelském
režimu, uživatelském režimu s nízkou
prioritou (nice), systémovém režimu a
nečinně. Poslední hodnota by se měla rovnat
USER_HZ krát druhá hodnota v pseudo-souboru uptime.
V Linuxu 2.6 obsahuje tato řádka tři další sloupce: iowait - čas strávený čekáním na dokončení I/O (od 2.5.41); irq - čas strávený obsluhou přerušení (od 2.6.0-test4); softirq - čas strávený obsluhou softirqs (od 2.6.0-test4).
Od jádra 2.6.11 existuje osmý sloupec steal - ukradený čas, což je čas strávený v jiném operačním systému v případě běhu ve virtualizovaném prostředí.
Od jádra 2.6.24 existuje devátý sloupec, guest, což je čas strávený během virtuálního CPU pro operační systémy hostované linuxovým jádrem.
- page 5741 1808
- Počet stránek, které systém odstránkoval na disk a z disku.
- swap 1 0
- Počet stránek swapu, které have been brought in and out.
- intr 1462898
- Tato řádka obsahuje počty přerušení obsloužených od zavedení systému pro všechna možná systémová přerušení. První sloupec je celkový počet obsloužených přerušení; každý další sloupec znamená celkový počet pro určité přerušení.
- disk_io: (2,0):(31,30,5764,1,2) (3,0):...
- (major,disk_idx):(noinfo, read_io_ops, blks_read, write_io_ops,
blks_written)
(jen pro Linux 2.4) - ctxt 115315
- Počet změn kontextu, které systém prodělal.
- btime 769041601
- Čas, kdy byl zaveden systém; v sekundách od začátku Epochy (1.leden 1970).
- processes 86031
- Počet forků od zavedení systému.
- procs_running 6
- Počet procesů v runnable state. (Od Linuxu 2.5.45)
- procs_blocked 2
- Počet zablokovaných procesů, které čekají na dokončení I/O. (Od Linuxu 2.5.45)
- /proc/swaps
- Využívané oblasti swapu. Viz též swapon(8).
- /proc/sys
- Tento adresář (přítomen od 1.3.57) obsahuje množství souborů a podadresářů, které odpovídají proměnným jádra. Tyto proměnné lze číst a někdy i měnit prostřednictvím souborového systému proc, a deprecated systémového volání sysctl(2). V současnosti obsahuje podadresáře abi, debug, dev, fs, kernel, net, proc, rxrpc, sunrpc a vm které obsahují další soubory a podadresáře.
- /proc/sys/abi (od jádra 2.4.10)
- Tento adresář může obsahovat soubory s binárními informacemi aplikací. Podrobnosti jsou uvedeny v souboru Documentation/sysctl/abi.txt ve zdrojovém kódu jádra.
- /proc/sys/debug
- Tento adresář může být prázdný.
- /proc/sys/dev
- Tento adresář obsahuje informace specifické pro zařízení (např. dev/cdrom/info). V některých systémech může být prázdný.
- /proc/sys/fs
- Obsahuje podadresáře binfmt_misc, epoll, inotify a mqueue a soubory dentry-state, dir-notify-enable, dquot-nr, file-max, file-nr, inode-max, inode-nr, inode-state, lease-break-time, leases-enable, overflowgid, overflowuid, suid_dumpable, super-max a super-nr.
- /proc/sys/fs/binfmt_misc
- Dokumentace k souborům v tomto adresáři je ve zdrojových kódech jádra v Documentation/binfmt_misc.txt.
- /proc/sys/fs/dentry-state (since Linux 2.2)
- This file contains information about the status of the directory cache (dcache). The file contains six numbers, nr_dentry, nr_unused, age_limit (age in seconds), want_pages (pages requested by system) and two dummy values.
- nr_dentry is the number of allocated dentries (dcache entries). This field is unused in Linux 2.2.
- nr_unused is the number of unused dentries.
- age_limit is the age in seconds after which dcache entries can be reclaimed when memory is short.
- want_pages is non-zero when the kernel has called shrink_dcache_pages() and the dcache isn't pruned yet.
- /proc/sys/fs/dir-notify-enable
- Tento soubor může být použit pro zakázání nebo povolení rozhraní dnotify popsaného v fcntl(2), na celosystémové úrovni. Hodnota 0 v tomto souboru rozhraní zakáže, hodnota 1 jej povolí.
- /proc/sys/fs/dquot-max
- Tento soubor ukazuje maximální počet cached disk quota entries. V některých systémech (2.4) není přítomen. Pokud je počet volných cached disk quota entries velmi nízký a v systému je najednou přítomno ohromné množství uživatelů, může být vhodné tento limit zvýšit.
- /proc/sys/fs/dquot-nr
- Tento soubor ukazuje počet alokovaných disk quota entries a počet volných disk quota entries.
- /proc/sys/fs/epoll (od Linuxu 2.6.28)
- Tento adresář obsahuje soubory max_user_instances a max_user_watches, které je možno použít k omezení paměti jádra využité rozhraním epoll. Více informací viz inotify(7).
- /proc/sys/fs/file-max
- Tento soubor definuje celosystémový limit počtu
otevřených souborů pro všechny procesy. (Viz
též setrlimit(2), který může
být použit procesem k nastavení limitu na proces,
RLIMIT_NOFILE, na počet souborů, které
může otevřít.) Pokud se objeví spousta
chybových hlášení, že
dochází file handles, zkuste tuto hodnotu
zvýšit:
echo 100000 > /proc/sys/fs/file-max
Konstanta jádra NR_OPEN stanovuje horní limit pro hodnotu, kterou je možné vložit do file-max.
Pokud zvýšíte /proc/sys/fs/file-max, zvyšte také /proc/sys/fs/inode-max na 3-4 násobek nové hodnoty /proc/sys/fs/file-max, nebo dojdou inody.
- /proc/sys/fs/file-nr
- Tento soubor (jen ke čtení) udává počet souborů, které jsou momentálně otevřeny. Obssahuje tři čísla: počet alokovaných file handles, počet volných file handles a maximální počet file handles. Jádro alokuje file handles dynamicky, ale potom je již neuvolňuje. Pokud je počet alokovaných souborů blízký maximu, mělo by být maximum zvýšeno. Pokud je počet volných file handles velký, jednalo se o špičku ve využití file handles a pravděpodobně není potřeba maximum zvyšovat.
- /proc/sys/fs/inode-max
- Tento soubor obsahuje maximální počet in-memory inodes. V některých (2.4) systémech nemusí být přítomen. Tato hodnota by měla být 3-4 krát větší než hodnota ve file-max, protože stdin, stdout a síťové sockety také vyžadují inody pro své ovládání. Pokud často docházejí inody, je potřeba tuto hodnotu zvýšit.
- /proc/sys/fs/inode-nr
- Tento soubor obsahuje první dvě hodnoty z inode-state.
- /proc/sys/fs/inode-state
- Tento soubor obsahuje sedm čísel: nr_inodes, nr_free_inodes, preshrink a čtyři dummy hodnoty. nr_inodes je počet inodů, které jsou alokovány systémem. Může být lehce vyšší než inode-max, protože Linux je alokuje po celých stránkách. nr_free_inodes reprezentuje počet volných inodů. preshrink je nenulová hodnota, když nr_inodes > inode-max a systém potřebuje vyčistit seznam inodů namísto alokování dalších.
- /proc/sys/fs/inotify (od Linuxu 2.6.13)
- Tento adresář obsahuje soubory max_queued_events, max_user_instances a max_user_watches, které je možno použít k omezení paměti jádra využité rozhraním inotify. Více informací viz inotify(7).
- /proc/sys/fs/lease-break-time
- Tento soubor určuje oddechový čas, který dává jádro procesu, který holding a file lease (fcntl(2)), poté co mu poslalo signál, kterým jej upozorňuje, že další proces čeká na otevření souboru. Pokud lease holder does not remove or downgrade the lease během tohoto oddechového času, jádro forcibly breaks the lease.
- /proc/sys/fs/leases-enable
- Tento soubor je možné použít k povolení nebo zakázání file leases (fcntl(2)) na celosystémové úrovni. Pokud tento soubor obsahuje hodnotu 0, jsou leases zakázány. Nenulová hodnota leases povolí.
- /proc/sys/fs/mqueue (od Linuxu 2.6.6)
- Tento adresář obsahuje soubory msg_max, msgsize_max a queues_max, které kontrolují zdroje používané POSIXovými frontami zpráv. Více informací viz mq_overview(7).
- /proc/sys/fs/overflowgid a /proc/sys/fs/overflowuid
- Tyto soubory umožňují změnit hodnotu pevně daných UID a GID. Výchozí hodnota 65534. Některé souborové systémy podporují poze 16 bitové UID a GID, ačkoliv UID a GID v Linuxu jsou 32 bitové. Když je jeden z těchto souborových systémů připojen jako zapisovatelný, je každé UID nebo GID, které by překročilo 65535, před zápisem na disk přeloženo na stanovenou hodnotu přetečení.
- /proc/sys/fs/suid_dumpable (od Linuxu 2.6.13)
- Hodnota v tomto souboru určuje, zda jsou soubory core dump
vytvářeny i pro set-user-ID nebo jinak
chráněné/poskvrněné binárky. Je
možné použít tři různé
integer hodnoty:
0 (výchozí) Tradiční (před verzí 2.6.13) chování. Core dump se nevytváří pro soubor s pozměněnými vlastnosti (voláním seteuid(2), setgid(2), apod., nebo spuštěním programu s set-user-ID nebo set-group-ID) nebo jehož binárka nemá povolena práva ke čtení.
1 ("debug") Core dump je vytvářen u všech souborů, kdykoliv je to možné. Vlastníkem souboru core dump je ID uživatele vypisovaného procesu a neaplikují se žádná bezpečnostní opatření. Mělo by se používat jen pro ladění systému. Ptrace není kontrolován.
2 ("suidsafe") Jakákoliv binárka, která by za normálních okolností nebyla vypsána (viz 0 výše), je vypsána s čitelností pouze pro uživatele root. To umožňuje uživateli soubor core dump odstranit, ale nikoliv číst. Z důvodu bezpečnosti se v tomto režimu soubory core dump vzájemně nepřepisují ani nepřepisují jiné soubory. tento režim je vhodný pro administrátory pokoušející se ladit problémy v normálním prostředí.
- /proc/sys/fs/super-max
- Tento soubor ovládá maximální počet superbloků a tím i maximální počet souborových systémů, které může jádro připojit. super-max je nutné zvýšit pouze v případě, že je potřeba připojit více souborových systémů, než aktuální hodnota v super-max umožňuje.
- /proc/sys/fs/super-nr
- Tento soubor obsahuje počet právě připojených souborových systémů.
- /proc/sys/kernel
- Tento adresář obsahuje soubory řídící mnoho parametrů jádra. Jejich popis následuje.
- /proc/sys/kernel/acct
- Tento soubor obsahuje tři čísla: highwater, lowwater a frequency. Pokud je zapnuto BSD-style process accounting, je jeho chování těmito hodnotami ovládáno. Pokud se volné místo na souborovém systému, kde sídlí log, sníží pod procento určené hodnotou lowwater, accounting se pozastaví. Pokud se volné místo dostane nad procento určené hodnotou highwater, accounting se obnoví. Frequency určuje, jak často má jádro kontrolovat volné místo (v sekundách). Výchozí hodnoty jsou 4, 2 a 30. To znamená pozastavit accounting, pokud volné místo představuje <= 2%; obnovit jej, pokud volné místo dosáhne >= 4%; informaci o volném místě považovat za platnou po 30 sekund.
- /proc/sys/kernel/cap-bound (od jádra 2.2 do 2.6.24)
- Tento soubor obsahuje hodnotu jádra capability bounding set (vyjádřeno jako číslo v desítkové soustavě se znaménkem). Tato sada je ANDována s capabilities povolenými procesu při execve(2). Od jádra 2.6.25 celosystémový capability bounding set zmizel a byl nahrazen per-thread bounding setem; viz capabilities(7).
- /proc/sys/kernel/core_pattern
- Viz core(5).
- /proc/sys/kernel/core_uses_pid
- Viz core(5).
- /proc/sys/kernel/ctrl-alt-del
- Tento soubor řídí zpracování Ctrl-Alt-Del z klávesnice. Pokud je hodnota v tomto souboru 0, Ctrl-Alt-Del je odchyceno a posláno programu init(8) program k provedení elegantního restartu. Pokud je tato hodnota větší než 0, reakce Linuxu bude okamžitý reboot, nebude ani provedena synchronizace bufferů. Poznámka: když má program (jako třeba dosemu) klávesnici v "raw" režimu, je ctrl-alt-del odchyceno programem ještě dříve než dosáhne tty úrovně jádra a je na programu, jak s ním naloží.
- /proc/sys/kernel/hotplug
- Tento soubor obsahuje cestu pro hotplug policy agent. Výchozí hodnota v tomto souboru je /sbin/hotplug.
- /proc/sys/kernel/domainname a /proc/sys/kernel/hostname
- mohou být použity pro nastavení NIS/YP domainname a
hostname počítače naprosto stejným
způsobem jako příkazy domainname(1) an
hostname(1), tj.:
# echo 'darkstar' > /proc/sys/kernel/hostname # echo 'mydomain' > /proc/sys/kernel/domainname
má stejný efekt jako
# hostname 'darkstar' # domainname 'mydomain'
Všimněte si ale, že darkstar.frop.org má hostname "darkstar" a DNS (Internet Domain Name Server) domainname "frop.org", které nesmí být zaměňováno s NIS (Network Information Service) nebo YP (Yellow Pages) domainname. Tato doménová jména jsou zcela odlišná. Podrobná diskuze je uvedena v manuálové stránce hostname(1).
- /proc/sys/kernel/htab-reclaim
- (jen pro PowerPC) Pokud tento soubor obsahuje nenulovou hodnotu, je PowerPC htab (viz soubor jádra Documentation/powerpc/ppc_htab.txt) vyčištěno pokaždé, když systém narazí na nečinnou smyčku.
- /proc/sys/kernel/l2cr
- (jen pro PowerPC) Tento soubor obsahuje vlajku, která řídí L2 vyrovnávací paměť desek pro procesor G3. Pokud je 0, je vyrovnávací paměť vypnuta. Pokud je nenulová, je zapnuta.
- /proc/sys/kernel/modprobe
- Tento soubor obsahuje cestu k zavaděči modulů jádra Výchozí hodnotou je /sbin/modprobe. Tento soubor je přítomen pouze pokud je jádro sestaveno s volbou CONFIG_KMOD. It is described by the kernel source file Documentation/kmod.txt (only present in kernel 2.4 and earlier).
- /proc/sys/kernel/msgmax
- Tento soubor definuje celosystémový limit na maximální počet bajtů v jediné zprávě zapsané do System V fronty zpráv.
- /proc/sys/kernel/msgmni
- Tento soubor definuje celosystémový limit počtu identifikátorů fronty zpráv. (Tento soubor je přítomen od Linuxu 2.4)
- /proc/sys/kernel/msgmnb
- Tento soubor definuje celosystémový parametr používaný pro inicializaci hodnoty msg_qbytes pro následně vytvořené fronty zpráv. Hodnota msg_qbytes určuje maximální počet bajtů, které mohou být zapsány do fronty zpráv.
- /proc/sys/kernel/ostype a /proc/sys/kernel/osrelease
- Tyto soubory obsahují části řetězců z /proc/version.
- /proc/sys/kernel/overflowgid a /proc/sys/kernel/overflowuid
- Tyto soubory duplikují soubory /proc/sys/fs/overflowgid a /proc/sys/fs/overflowuid.
- /proc/sys/kernel/panic
- Tento soubor umožňuje čtení/zápis proměnné jádra panic_timeout. Pokud je nulová, bude jádro při panice ve smyčce; pokud je nenulová, znamená počet sekund po kterých by jádro mělo samo rebootovat. Pokud je použit software watchdog device driver, doporučuje se hodnota 60.
- /proc/sys/kernel/panic_on_oops (od jádra 2.5.68)
- Tento soubor řídí chování jádra, pokud dojde k oops nebo chybě. Pokud tento soubor obsahuje 0, pokusí se systém pokračovat. Pokud obsahuje 1, počká systém několik sekund (aby měl klogd čas zaznamenat výstup oops) a pak zpanikaří. Pokud soubor /proc/sys/kernel/panic také obsahuje nenulovou hodnotu, bude počítač rebootován.
- /proc/sys/kernel/pid_max (od jádra 2.5.34)
- Tento soubor určuje hodnotu, při které se PID přetočí (tj. hodnota v tomto souboru je o jedna větší než nejvyšší PID). Výchozí hodnota pro tento soubor, 32768, má za následek stejný rozsah PID jako v předchozích jádrech. Na 32 bitových systémech je 32768 maximální hodnotou pid_max. Na 64 bitových systémech může být pid_max nastaven na jakoukoliv hodnotu až do 2^22 (PID_MAX_LIMIT, zhruba 4 milióny).
- /proc/sys/kernel/powersave-nap (pouze pro PowerPC)
- Tento soubor obsahuje vlajku. Pokud je nastavena, Linux-PPC použije režim šetření energií "nap", jinak bude použit režim "doze".
- /proc/sys/kernel/printk
- Čtyři hodnoty v tomto souboru jsou console_loglevel, default_message_loglevel, minimum_console_level a default_console_loglevel. Tyto hodnoty ovlivňují chování printk() při tisku nebo záznamu zpráv o chybách. Více informací o různých úrovních logování uvádí syslog(2). Zprávy s prioritou vyšší než console_loglevel budou vytisknuty do konsoly. Zprávy bez zadané priority budou vytisknuty s prioritou default_message_level. minimum_console_loglevel je minimální (nejvyšší) hodnota, na kterou může být console_loglevel nastavena. default_console_loglevel je výchozí hodnota pro console_loglevel.
- /proc/sys/kernel/pty (od Linuxu 2.6.4)
- Tento adresář obsahuje dva soubory, která se vztahují k počtu pseudoterminálů typu Unix 98 (viz pts(4)) v systému.
- /proc/sys/kernel/pty/max
- Tento soubor definuje maximální počet pseudoterminálů.
- /proc/sys/kernel/pty/nr
- Tento read-only soubor ukazuje, kolik pseudoterminálů je právě užíváno.
- /proc/sys/kernel/random
- Tento adresář obsahuje různé parametry pro řízení činnosti souboru /dev/random. Více informací uvádí random(4).
- /proc/sys/kernel/real-root-dev
- Tento soubor je dokumentován ve zdrojovém souboru jádra Documentation/initrd.txt.
- /proc/sys/kernel/reboot-cmd (jen Sparc)
- Tento soubor je zřejmě určen pro předání parametru zavaděči SPARC ROM/Flash. Možná mu říká, co dělat po rebootování?
- /proc/sys/kernel/rtsig-max
- (Pouze v jádrech do 2.6.7 včetně; viz setrlimit(2)) Tento soubor může být použit k nastavení maximálního počtu POSIXových realtime signálů (ve frontě), které mohou v systému zbývat.
- /proc/sys/kernel/rtsig-nr
- (Pouze v jádrech do 2.6.7 včetně) Tento soubor ukazuje počet POSIXových realtime signálů, které jsou právě ve frontě.
- /proc/sys/kernel/sem (od Linuxu 2.4)
- Tento soubor obsahuje 4 čísla, která definují limity pro System V IPC semafory. Tyto položky jsou, popořadě:
- /proc/sys/kernel/sg-big-buff
- Tento soubor ukazuje velikost bufferu obecného SCSI zařízení (sg). Zatím není možné jej měnit za chodu, ale je možné jej měnit při kompilaci úpravou include/scsi/sg.h a změnou hodnoty SG_BIG_BUFF. Nicméně nemělo by být nutné tuto hodnotu měnit.
- /proc/sys/kernel/shmall
- Tento soubor obsahuje celosystémový limit na celkový počet stránek sdílené paměti System V.
- /proc/sys/kernel/shmmax
- Tento soubor je možné použít pro zjištění a nastavení limitu na maximální (System V IPC) velikost segmentu sdílené paměti, který může být vytvořen. Jádro nyní podporuje segmenty sdílené paměťi až do 1GB. Výchozí hodnota je SHMMAX.
- /proc/sys/kernel/shmmni
- (od Linuxu 2.4 dál) Tento soubor určuje celosystémový maximální počet segmentů sdílené paměti System V, které mohou být vytvořeny.
- /proc/sys/kernel/version
- Tento soubor obsahuje řetězec ve tvaru:
#5 Wed Feb 25 21:49:24 MET 1998"#5" znamená, že se jedná o páté jádro sestavené z těchto zdrojových souborů a datum za ním je čas, kdy bylo sestaveno.
- /proc/sys/kernel/threads-max (od jádra 2.3.11)
- Tento soubor určuje globální limit pro počet vláken (úloh), která mohou být v systému vytvořena.
- /proc/sys/kernel/zero-paged (pouze pro PowerPC)
- Tento soubor obsahuje vlajku. Pokud je nastavena (nenulová), Linux-PPC will pre-zero pages in the idle loop, possibly speeding up get_free_pages.
- /proc/sys/net
- Tento adresář obsahuje síťové položky. Vysvětlení k některým souborům v tomto adresáři je uvedeno v tcp(7) a ip(7).
- /proc/sys/net/core/somaxconn
- Tento soubor definuje maximální hodnotu pro parametr backlog volání listen(2); viz manuálová stránka listen(2).
- /proc/sys/proc
- Tento adresář může být prázdný.
- /proc/sys/sunrpc
- Tento adresář podporuje remote procedure call Sunu pro network file system (NFS). V některých systémech není přítomen.
- /proc/sys/vm
- Tento adresář obsahuje soubory pro ladění memory managementu, buffer a cache managementu.
- /proc/sys/vm/drop_caches (od Linuxu 2.6.16)
- Zápis do tohoto souboru způsobí, že
jádro vyhodí prázdné vyrovnávací
paměti, dentries a inody z paměti, čímž
se paměť uvolní.
K uvolnění pagecache se použije echo 1 > /proc/sys/vm/drop_caches; k uvolnění dentries a inodů se použije echo 2 > /proc/sys/vm/drop_caches; k uvolnění pagecache, dentries a inodů se použije echo 3 > /proc/sys/vm/drop_caches.
Protože toto je nedestruktivní operace a dirty objekty není možné uvolnit, měl by uživatel nejprve spustit sync(8).
- /proc/sys/vm/legacy_va_layout (od Linuxu 2.6.9)
- Pokud je nenulový, vypne nový 32 bitový memory-mapping layout; jádro použije pro všechny procesy původní (2.4) layout.
- /proc/sys/vm/oom_dump_tasks (od jádra 2.6.25)
- Enables a system-wide task dump (excluding kernel threads) to be produced
when the kernel performs an OOM-killing. The dump includes the following
information for each task (thread, process): thread ID, real user ID,
thread group ID (process ID), virtual memory size, resident set size, the
CPU that the task is scheduled on, oom_adj score (see the description of
/proc/[pid]/oom_adj), and command name. This is helpful to
determine why the OOM-killer was invoked and to identify the rogue task
that caused it.
If this contains the value zero, this information is suppressed. On very large systems with thousands of tasks, it may not be feasible to dump the memory state information for each one. Such systems should not be forced to incur a performance penalty in OOM situations when the information may not be desired.
If this is set to non-zero, this information is shown whenever the OOM-killer actually kills a memory-hogging task.
Výchozí hodnota je 0.
- /proc/sys/vm/oom_kill_allocating_task (od jádra 2.6.24)
- This enables or disables killing the OOM-triggering task in out-of-memory
situations.
If this is set to zero, the OOM-killer will scan through the entire tasklist and select a task based on heuristics to kill. This normally selects a rogue memory-hogging task that frees up a large amount of memory when killed.
If this is set to non-zero, the OOM-killer simply kills the task that triggered the out-of-memory condition. This avoids a possibly expensive tasklist scan.
If /proc/sys/vm/panic_on_oom is non-zero, it takes precedence over whatever value is used in /proc/sys/vm/oom_kill_allocating_task.
Výchozí hodnota je 0.
- /proc/sys/vm/overcommit_memory
- Tento soubor obsahuje režim kernel virtual memory accounting. Hodnoty jsou:
- 0: heuristic overcommit (výchozí)
1: always overcommit, never check
2: always check, never overcommit
- V režimu 0 nejsou volání mmap(2) s MAP_NORESERVE kontrolována nikdy a výchozí kontrola je velmi slabá, což způsobuje riziko, že bude proces "OOM-zabit". V Linuxu 2.4 jakákoliv nenulová hodnota implikuje režim 1. V režimu 2 (dostupný od Linuxu 2.6) je celkový virtuální adresní prostor systému omezen na (SS + RAM*(r/100)), kde SS je velikost odkládacího prostoru, RAM je velikost fyzické paměti a r je obsah souboru /proc/sys/vm/overcommit_ratio.
- /proc/sys/vm/overcommit_ratio
- Viz popis /proc/sys/vm/overcommit_memory.
- /proc/sys/vm/panic_on_oom (od jádra 2.6.18)
- This enables or disables a kernel panic in an out-of-memory situation.
If this file is set to the value 0, the kernel's OOM-killer will kill some rogue process. Usually, the OOM-killer is able to kill a rogue process and the system will survive.
If this file is set to the value 1, then the kernel normally panics when out-of-memory happens. However, if a process limits allocations to certain nodes using memory policies (mbind(2) MPOL_BIND) or cpusets (cpuset(7)) and those nodes reach memory exhaustion status, one process may be killed by the OOM-killer. No panic occurs in this case: because other nodes' memory may be free, this means the system as a whole may not have reached an out-of-memory situation yet.
If this file is set to the value 2, the kernel always panics when an out-of-memory condition occurs.
The default value is 0. 1 and 2 are for failover of clustering. Select either according to your policy of failover.
- /proc/sysvipc
- Podadresář obsahující pseudosoubory msg, sem a shm. Tyto soubory obsahují seznam objektů System V Interprocess Communication (IPC) (fronty zpráv, semafory a sdílená paměť), které jsou aktuálně v systému přítomny, poskytují podobnou informaci jako ipcs(1). Tyto soubory mají záhlaví a jsou formátovány (jeden IPC objekt na řádek) pro lepší přehled. svipc(7) poskytuje další detaily pro informace obsažené v těchto souborech.
- /proc/tty
- Podadresář obsahující pseudosoubory a podadresáře pro ovladače tty a line disciplines.
- /proc/uptime
- Tento soubor obsahuje dvě čísla: uptime systému (sekundy) a čas strávený nečinností (sekundy).
- /proc/version
- Řetězec identifikující verzi jádra,
které právě běží. Zahrnuje obsah
/proc/sys/kernel/ostype, /proc/sys/kernel/osrelease a
/proc/sys/kernel/version. Například:
Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
- /proc/vmstat (od Linuxu 2.6)
- Tento soubor zobrazuje různé statistiky virtuální paměti.
- /proc/zoneinfo (od Linuxu 2.6.13)
- Tento soubor obsahuje informace o paměťových zónách. Hodí se při analyzování chování virtuální paměti.
POZNÁMKY¶
Mnoho řetězců (např. proměnné prostředí a příkazový řádek) je ve vnitřním formátu s podpoložkami oddělenými NULL bajty ('\0'), takže mohou být lépe čitelné s užitím od -c nebo tr "\000" "\n". Jako další možnost poslouží dobře i echo `cat <file>`.
Tato manuálová stránka není úplná, může být nepřesná a potřebuje být často doplňována.
DALŠÍ INFORMACE¶
cat(1), find(1), free(1), ps(1),
tr(1), uptime(1), chroot(2), mmap(2),
readlink(2), syslog(2), slabinfo(5), hier(7),
time(7), arp(8), dmesg(8), hdparm(8),
ifconfig(8), init(8), lsmod(8), lspci(8),
mount(8), netstat(8), procinfo(8), route(8)
Soubory zdrojového kódu jádra:
Documentation/filesystems/proc.txt,
Documentation/sysctl/vm.txt
TIRÁŽ¶
Tato stránka je součástí projektu Linux man-pages. Popis projektu a informace o hlášení chyb najdete na http://www.kernel.org/doc/man-pages/.
2009-01-17 | Linux |