proc
pseudosystem plików z informacjami o procesach
- Provided by: manpages-pl (Version: 1:0.5-1)
- Report a bug
pseudosystem plików z informacjami o procesach
proc jest pseudosystemem plików, który służy jako lepszy interfejs do struktur jądra. Zazwyczaj jest montowany w katalogu /proc. Jest on w większości przeznaczony tylko do odczytu, lecz niektóre pliki umożliwiają modyfikacje zmiennych jądra.
Następujący szkic ukazuje w szybki sposób hierarchię /proc.
5:cpuacct,cpu,cpuset:/daemons
$ cd /proc/20/cwd; /bin/pwd
Należy zauważyć, że polecenie pwd jest często wbudowanym poleceniem powłoki i może nie działać w tym kontekście w sposób właściwy. W powłoce bash(1) można użyć pwd -P.
W procesie wielowątkowym zawartość tego linku symbolicznego nie jest dostępna, jeżeli wątek główny już się zakończył (zazwyczaj przez wywołanie pthread_exit(3)).
$ strings /proc/1/environ
W Linuksie 2.0 i wcześniejszych wersjach, /proc/[pid]/exe jest wskaźnikiem do uruchomionego pliku binarnego i ma postać dowiązania symbolicznego. Wywołanie readlink(2) na tym pliku zwróci w Linuksie 2.0 łańcuch znakowy postaci:
[urządzenie]:i-węzeł
Na przykład, [0301]:1502 będzie 1502 i-węzłem na urządzeniu o numerze głównym 03 (IDE, MFM itp.) i pobocznym 01 (pierwsza partycja pierwszego dysku).
Do zlokalizowania pliku, można posłużyć się poleceniem find(1) z opcją -inum.
W przypadku deskryptorów plików potoków gniazd wpisy będą dowiązaniami symbolicznymi, których zawartością jest typ pliku z i-węzłem. Wywołanie readlink(2) na takim pliku zwróci ciąg w postaci:
typ:[i-węzeł]
Przykładowo socket:[2248868] będzie gniazdem z i-węzłem 2248868. W przypadku gniazd, i-węzeł można wykorzystać do pozyskania większej liczby informacji z jednego z plików z katalogu /proc/net/.
W przypadku deskryptorów plików, które nie mają odpowiadającego i-węzła (np. deskryptorów plików tworzonych za pomocą epoll_create(2), eventfd(2), inotify_init (2), signalfd(2) i timerfd(2)), wpis będzie dowiązaniem symbolicznym z zawartością w postaci
anon_inode:<typ-pliku>
W niektórych przypadkach typ-pliku jest otoczony nawiasami kwadratowymi.
Przykładowo dowiązanie symboliczne deskryptora pliku epoll będzie dowiązaniem symbolicznym, którego zawartością jest łańcuch anon_inode:[eventpoll].
W procesie wielowątkowym zawartość tego katalogu nie jest dostępna, jeżeli wątek główny już się zakończył (zazwyczaj przez wywołanie pthread_exit(3)).
Programy, które przyjmują nazwę pliku
jako argument wiersza polecenia, lecz nie czytają standardowego
wejścia, jeśli nie podano argumentu albo które
zapisują do pliku nazwanego argumentem wiersza polecenia, lecz
nie wysyłają danych wyjściowych na standardowe
wyjście, można zmusić do używania
standardowego wejścia lub wyjścia wykorzystując
/proc/[pid]/fd. Na przykład, zakładając,
że opcja -i określa plik wejściowy, a opcja
-o określa plik wyjściowy:
$ foobar -i /proc/self/fd/0 -o /proc/self/fd/1 ...
co daje działający filtr.
/proc/self/fd/N jest w przybliżeniu tym samym co /dev/fd/N na niektórych systemach uniksowych i uniksopodobnych. Większość linuksowych skryptów MAKEDEV tworzy dowiązania symboliczne /dev/fd do /proc/self/fd.
Większość systemów
udostępnia dowiązania symboliczne /dev/stdin,
/dev/stdout i dev/stderr, które linkują
odpowiednio do plików 0, 1 i 2 w
/proc/self/fd. Powyższe, przykładowe polecenie
może być więc zapisane również tak:
$ foobar -i /dev/stdin -o /dev/stdout ...
$ cat /proc/12015/fdinfo/4 pos: 1000 flags: 01002002
Pole pos jest liczbą dziesiętną oznaczającą bieżące przesunięcie w pliku. Pole flags jest liczbą ósemkową zawierającą prawa dostępu do pliku i znaczniki stanu (patrz open(2)).
Tylko właściciel procesu może odczytywać pliki z tego katalogu.
$ ls -l /proc/self/map_files/
lr--------. 1 root root 64 Apr 16 21:31
3252e00000-3252e20000 -> /usr/lib64/ld-2.15.so
...
Choć te wpisy są dostępne dla
obszarów pamięci przydzielonych flagą
MAP_FILE, to sposób w jaki zaimplementowane jest anonimowe
dzielenie pamięci (obszary utworzone flagami MAP_ANON |
MAP_SHARED) oznaczają że tego typu obszary
również pojawią się w tym katalogu. Oto
przykład, gdzie plikiem docelowym jest usunięty
/dev/zero:
lrw-------. 1 root root 64 Apr 16 21:33
7fc075d2f000-7fc075e6f000 -> /dev/zero (deleted)
Ten katalog istnieje tylko jeśli włączono opcję konfiguracyjną jądra CONFIG_CHECKPOINT_RESTORE.
Format pliku jest następujący:
adres uprawn przesun urządz i-węzeł ścieżka 00400000-00452000 r-xp 00000000 08:02 173521 /usr/bin/dbus-daemon 00651000-00652000 r--p 00051000 08:02 173521 /usr/bin/dbus-daemon 00652000-00655000 rw-p 00052000 08:02 173521 /usr/bin/dbus-daemon 00e03000-00e24000 rw-p 00000000 00:00 0 [heap] 00e24000-011f7000 rw-p 00000000 00:00 0 [heap] ... 35b1800000-35b1820000 r-xp 00000000 08:02 135522 /usr/lib64/ld-2.15.so 35b1a1f000-35b1a20000 r--p 0001f000 08:02 135522 /usr/lib64/ld-2.15.so 35b1a20000-35b1a21000 rw-p 00020000 08:02 135522 /usr/lib64/ld-2.15.so 35b1a21000-35b1a22000 rw-p 00000000 00:00 0 35b1c00000-35b1dac000 r-xp 00000000 08:02 135870 /usr/lib64/libc-2.15.so 35b1dac000-35b1fac000 ---p 001ac000 08:02 135870 /usr/lib64/libc-2.15.so 35b1fac000-35b1fb0000 r--p 001ac000 08:02 135870 /usr/lib64/libc-2.15.so 35b1fb0000-35b1fb2000 rw-p 001b0000 08:02 135870 /usr/lib64/libc-2.15.so ... f2c6ff8c000-7f2c7078c000 rw-p 00000000 00:00 0 [stack:986] ... 7fffb2c0d000-7fffb2c2e000 rw-p 00000000 00:00 0 [stack] 7fffb2d48000-7fffb2d49000 r-xp 00000000 00:00 0 [vdso]
Pole adres jest przestrzenią adresową procesu, który ją zajmuje, a uprawn jest zbiorem uprawnień:
r = odczyt w = zapis x = wykonywanie s = wspólne p = prywatne (kopiowane przy zapisie)
Przesun jest przesunięciem w pliku lub w czymś innym, urządz zawiera numery (główny:poboczny) urządzenia, a i-węzeł jest i-węzłem na tym urządzeniu. 0 wskazuje, że nie istnieje i-węzeł związany z tym obszarem pamięci, jak to na przykład ma miejsce w przypadku segmentu BSS (niezainicjowanych danych).
Ścieżka to zwykle plik zabezpieczający mapowanie. Koordynacja jest łatwa w przypadku plików ELF za pomocą pola przesun, poprzez sprawdzenie pola Offset w nagłówkach programu ELF (readelf -l).
Istnieją dodatkowe, pomocne pseudościeżki:
W Linuksie 2.0 nie ma pola podającego nazwę ścieżki.
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)
Aby dowiedzieć się więcej o propagacji montowań, proszę zapoznać się z Documentation/filesystems/sharedsubtree.txt w drzewie źródeł jądra Linux.
device /dev/sda7 mounted on /home with fstype ext3 [statistics] ( 1 ) ( 2 ) (3 ) (4)
Otwarcie tego pliku przywróci obsługę pliku dotyczącą przestrzeni nazwy IPC procesu, określonego przez pid. Tak długo jak jego deskryptor pliku pozostanie otwarty, przestrzeń nazwy IPC pozostanie aktywna, nawet jeśli wszystkie procesy w przestrzeni nazwy zakończą się. Deskryptor pliku może być podany do setns(2).
Otwarcie tego pliku przywróci obsługę pliku dotyczącą sieciowej przestrzeni nazwy procesu, określonego przez pid. Tak długo jak jego deskryptor pliku pozostanie otwarty, sieciowa przestrzeń nazwy pozostanie aktywna, nawet jeśli wszystkie procesy w przestrzeni nazwy zakończą się. Deskryptor pliku może być podany do setns(2).
Otwarcie tego pliku przywróci obsługę pliku dotyczącą przestrzeni nazwy UTS procesu, określonego przez pid. Tak długo jak jego deskryptor pliku pozostanie otwarty, przestrzeń nazwy UTS pozostanie aktywna, nawet jeśli wszystkie procesy w przestrzeni nazwy zakończą się. Deskryptor pliku może być podany do setns(2).
Przypisuje ona do każdego potencjalnego zadania wartość od 0 (nigdy nie zabija) do 1000 (zawsze zabija) aby określić docelowy proces do zabicia. Jednostki są z grubsza proporcjonalne do pamięci, którą proces może przydzielić, obliczaną w oparciu do bieżącego użycia pamięci i pamięci wymiany. Na przykład zadanie używające całą dozwoloną pamięć otrzyma wynik 1000, a jeśli użyje połowę dozwolonej pamięci, otrzyma wynik 500.
Dodatkowym czynnikiem w wyniku "badness" jest fakt, że procesy roota mają dodatkowe 3% pamięci w stosunku do pozostałych procesów.
Wielkość "dozwolonej" pamięci zależy od kontekstu w jakim wywołano OOM-killera. Jeśli wynika to z faktu, że pamięć przeznaczona dla zadania alokującego cpuset została wyczerpany, to dozwolona pamięć odpowiada zestawowi pamięci przypisanego do tego cpuset (zobacz cpuset(7)). Jeśli jest to skutek zasad dot. pamięci węzła (lub węzłów), to dozwolona pamięć odpowiada zestawowi tych zasad. Jeśli wynika to z faktu, że osiągnięto limit pamięci (lub pamięci wymiany) to dozwolona pamięć jest tak ustawionym limitem. Gdy wynika to z sytuacji braku pamięci, to dozwolona pamięć odpowiada wszystkich zaalokowanych zasobom.
Wartość oom_score_adj jest dodawana do wyniku "badness" przed użyciem jej do wybrania procesu przeznaczonego do zabicia. Dozwolone wartości wynoszą od -1000 (OOM_SCORE_ADJ_MIN) do +1000 (OOM_SCORE_ADJ_MAX). Pozwala to przestrzeni użytkownika na kontrolę preferencji OOM-killing. Można w ten sposób zawsze preferować dane zadanie lub całkowicie wyłączyć je z procesu OOM-killing. Najniższa dostępna wartość (-1000) jest równoznaczna z całkowitym wyłączeniem OOM-killing dla danego zadania, ponieważ zawsze zwróci ono wynik "badness" równy 0.
Z tego względu łatwo jest zdefiniować wielkość pamięci dla każdego zadania przez przestrzeń użytkownika. Ustawienie wartości oom_score_adj np. na +500 jest w przybliżeniu odpowiednikiem pozwolenia pozostałym zadaniom w tym samym systemie, cpuset, zasadom dot. pamięci i zasobom kontrolera pamięci na użycie co najmniej 50% pamięci więcej. Z kolei wartość -500 odpowiada mniej więcej zmniejszeniu o 50% dozwolonej pamięci.
Z powodu zgodności wstecznej ze starszymi jądrami do modyfikacji wyniku "badness" wciąż można używać /proc/[pid]/oom_adj. Jego wartość skaluje się liniowo z oom_score_adj.
Zapis do /proc/[pid]/oom_score_adj lub /proc/[pid]/oom_adj zmieni zapis w drugim pseudopliku na przeskalowaną odpowiednio wartość.
W procesie wielowątkowym zawartość tego linku symbolicznego nie jest dostępna, jeżeli wątek główny już się zakończył (zazwyczaj przez wywołanie pthread_exit(3)).
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
Ten plik istnieje tylko jeśli podczas kompilacji jądra włączono opcję CONFIG_MMU.
Kolejne pola i ich właściwe specyfikatory formatu scanf(3) to:
Przed Linuksem 2.6 była to wartość skalowana w oparciu o wagę jaką planista przypisał do danego procesu.
size (1) łączny rozmiar programu
(taki sam jak VmSize w /proc/[pid]/status)
resident (2) rozmiar części rezydentnej
(taki sam jak VmRSS w /proc/[pid]/status)
share (3) strony wspólne (tzn. obecne w pliku)
text (4) tekst (kod)
lib (5) biblioteki (nieużywane w Linuksie 2.6)
data (6) dane i stos
dt (7) strony nieaktualne (dirty; nieużywane w Linuksie 2.6)
$ 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
W procesie wielowątkowym zawartość katalogu /proc/[pid]/task nie jest dostępna, jeżeli wątek główny już się zakończył (najprawdopodobniej wywołując pthread_exit(3)).
cat /lib/modules/$(uname -r)/build/.config
Plik ten może być niekiedy użyty przez mount(8), gdy nie podano systemów plików i nie potrafi on określić typu systemu plików. Próbowane są wówczas systemy plików wypisane w tym pliku (poza systemami z oznaczeniem "nodev").
cache rozmiar bufora w KB capacity liczba sektorów driver wersja sterownika geometry geometria fizyczna i logiczna identify szesnastkowo media rodzaj nośnika model numer modelu producenta settings ustawienia napędu smart_thresholds szesnastkowo smart_values szesnastkowo
Dostęp do tych informacji w przyjaznym formacie umożliwia program narzędziowy hdparm(8).
Całkowity rozmiar tego pliku to rozmiar fizycznej pamięci (RAM) plus 4 KB.
Z tego pliku pobiera komunikaty program dmesg(1).
CommitLimit = (overcommit_ratio * Physical RAM) + Swap
Na przykład w systemie z 1 GiB fizycznej pamięci RAM i 7 GiB pamięci wymiany z overcommit_ratio równym 30, ta formuła daje CommitLimit na poziomie 7,3 GiB. Więcej informacji zawiera dokumentacja w źródłach jądra: Documentation/vm/overcommit-accounting.
IP address HW type Flags HW address Mask Device 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
Gdzie "IP address" jest adresem IPv4 maszyny, a "HW type" jest rodzajem sprzętu wg RFC 826. "Flags" są to wewnętrzne znaczniki struktury ARP (zdefiniowane w /usr/include/linux/if_arp.h), a "HW address" jest odwzorowaniem adresu IP w warstwie fizycznej, jeśli jest ono określone.
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
indx interface_name dmi_u dmi_g dmi_address
2 eth0 1 0 01005e000001
3 eth1 1 0 01005e000001
4 eth2 1 0 01005e000001
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
Num RefCount Protocol Flags Type St Path 0: 00000002 00000000 00000000 0001 03 1: 00000001 00000000 00010000 0001 01 /dev/printer
Gdzie "Num" jest numerem wpisu w tablicy jądra, "RefCount" jest liczbą użytkowników gniazda, "Protocol" obecnie jest zawsze zerem, "Flags" reprezentuje wewnętrzne znaczniki jądra, określające stan gniazda. "Type" jest zawsze równe "1" (Nie ma na razie w jądrze wsparcia dla gniazd datagramowych domeny UNIX). "St" jest wewnętrznym stanem gniazda, a ścieżka jest ścieżką (jeśli istnieje) związaną z gniazdem.
Plik został zastąpiony nowym interfejsem /proc do PCI (/proc/bus/pci). Stał się opcjonalny w Linuksie 2.2 (dostępny przy ustawieniu opcji CONFIG_PCI_OLD_PROC przy kompilacji jądra). Ponownie stał się nieopcjonalny w Linuksie 2.4. Następnie, został uznany za przestarzały w Linuksie 2.6 (był wciąż dostępny przy ustawieniu CONFIG_PCI_LEGACY_PROC), aż w końcu usunięto go w Linuksie 2.6.17.
Możliwy jest też zapis do niektórych z tych plików, w celu rekonfiguracji podsystemu, lub przełączania różnych parametrów.
Polecenie
echo 'scsi add-single-device 1 0 5 0' > /proc/scsi/scsi
Czytanie tych plików zwykle pokaże konfigurację sterownika i kontrolera, statystyki itp.
Pisanie do tych plików umożliwia różne operacje na różnych kontrolerach. Na przykład za pomocą poleceń latency i nolatency root może uaktywniać lub deaktywować kod pomiaru czasu oczekiwania dla poleceń (command latency) w sterowniku eata_dma. Za pomocą poleceń lockup i unlock root może sterować symulowanym przez sterownik scsi_debug blokowaniem magistrali.
cache-name num-active-objs total-objs object-size num-active-slabs total-slabs num-pages-per-slab
Szczegóły można znaleźć w slabinfo(5).
echo 100000 > /proc/sys/fs/file-max
Stała jądra NR_OPEN narzuca górne ograniczenie wartości, która może zostać umieszczone w file-max.
Gdy zwiększa się /proc/sys/fs/file-max, należy pamiętać o zwiększeniu /proc/sys/fs/inode-max do wartości 3-4 razy większej niż nowa wartość /proc/sys/fs/file-max lub należy się liczyć z tym, że zabraknie i-węzłów.
Procesy uprzywilejowane (CAP_SYS_ADMIN) mogą przesłonić limit file-max.
# echo 'darkstar' > /proc/sys/kernel/hostname # echo 'mydomain' > /proc/sys/kernel/domainname
daje taki sam efekt, jak
# hostname 'darkstar' # domainname 'mydomain'
Należy tu zauważyć, że klasyczny darkstar.frop.org posiada nazwę hosta "darkstar" i domenę "frop.org" w DNS (Internetowej Usłudze Nazw Domen - Internet Domain Name Service), których nie należy mylić z domeną NIS (Sieciowej Usługi Informacyjnej - Network Information Service) lub YP (Yellow Pages). Te dwa systemy nazw domenowych zasadniczo się różnią. Szczegółowe informacje można znaleźć na stronie podręcznika hostname(1).
0 - całkowicie wyłącza sysrq
1 - włącza wszystkie funkcje sysrq
>1 - maska bitowa dozwolonych funkcji sysrq, jak poniżej:
2 - włącza kontrolę poziomu logów konsoli
4 - włącza kontrolę klawiatury (SAK, unraw)
8 - włącza zrzuty procesów w celu debugowania itd.
16 - włącza polecenie sync
32 - włącza ponowne montowanie tylko do odczytu
64 - włącza sygnały procesów (term, kill,
oom-kill)
128 - pozwala na restartowanie/wyłączanie
256 - pozwala ustawiać nice wszystkich zadań czasu
rzeczywistego
Ten plik istnieje tylko jeśli podczas kompilacji jądra włączono opcję CONFIG_MAGIC_SYSRQ. Aby dowiedzieć się więcej, proszę zapoznać się z plikiem Documentation/sysrq.txt w źródłach jądra Linux.
#5 Wed Feb 25 21:49:24 MET 1998
Gdzie'#5' oznacza, że jest to piąte z kolei jądro zbudowane z tych samych źródeł, a następująca dalej data określa, kiedy jądro zostało zbudowane.
Aby zwolnić bufor stronicowania, należy użyć echo 1 > /proc/sys/vm/drop_caches; aby zwolnić dentries i i-węzły, należy użyć echo 2 > /proc/sys/vm/drop_caches; aby zwolnić bufor stronicowania, dentries i i-węzły, należy użyć echo 3 > /proc/sys/vm/drop_caches.
Ponieważ operacja ta nie jest destrukcyjna i brudne obiekty nie są zwalniane, użytkownik powinien wcześniej uruchomić sync(8).
Plik posiada jedną z następujących wartości:
Funkcja jest aktywna wyłącznie na architekturach/platformach z zaawansowaną, maszynową obsługą sprawdzania i zależy od możliwości sprzętowych.
Aplikacje mogą indywidualnie przesłonić ustawienie memory_failure_early_kill za pomocą operacji PR_MCE_KILL prctl(2).
Jeśli zawiera wartość zero, ta informacja nie jest zrzucana. Zrobienie zrzutu stanu pamięci każdego zadania może nie być wykonalne w bardzo dużych systemach, z tysiącami zadań. Takie systemy nie powinny być zmuszane do narażania się na dodatkowy spadek wydajności w sytuacjach braku pamięci, gdy taka informacja nie może być przydatna.
Jeśli wartość jest niezerowa, ta informacja jest pokazywana kiedy tylko OOM-killer rzeczywiście zabija zadanie zajmujące dużo pamięci.
Domyślną wartością jest 0.
Jeśli jest ustawione na zero OOM-killer przeskanuje całą listę zadań i do zabicia wybierze zadania na podstawie heurystyki. Z reguły wybierane są zadania zajmujące wiele pamięci, które zwalniają dużą ilość pamięci po zabiciu.
Jeśli jest ustawione na wartość niezerową, OOM-killer po prostu zabija zadanie, które wyzwoliło stan braku pamięci. W ten sposób unika się potencjalnie kosztownego skanowania listy zadań.
Jeśli /proc/sys/vm/panic_on_oom jest niezerowe, to ma ono pierwszeństwo, niezależnie od wartości użytej w /proc/sys/vm/oom_kill_allocating_task.
Domyślną wartością jest 0.
Jeśli plik ma ustawioną wartość 0, OOM-killer jądra zabija któryś z nieposłusznych procesów. Z reguły OOM-killer jest w stanie to wykonać i system może pracować dalej.
Jeśli plik ma ustawioną wartość 1, to jądro zwykle panikuje przy sytuacji braku pamięci. Jednak jeśli proces limituje przydzielanie do konkretnych węzłów używając zasad pamięci (mbind(2) MPOL_BIND) lub cpuset (cpuset(7)) i te węzły dotknie problem braku pamięci, to taki proces może być zabity przez OOM-killer. Nie występuje wówczas panika, ponieważ pamięć innych węzłów może być wolna, co oznacza że system jako całość mógł nie osiągnąć jeszcze sytuacji braku pamięci.
Jeśli ustawiono wartość 2, to jądro zawsze panikuje w sytuacji braku pamięci.
Domyślną wartość jest 0. 1 i 2 są przeznaczone do poprawnej pracy klastrów mimo wystąpienia problemów. Proszę wybrać właściwą z nich, zgodnie z używanymi zasadami w takich sytuacjach.
Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
Wiele łańcuchów znakowych (np. środowisko czy linia poleceń) występuje w postaci wewnętrznej, z polami zakończonymi bajtami NUL ('\0'), więc jeśli do ich czytania użyje się od -c lub tr "\000" "\n", to mogą być bardziej czytelne. Alternatywnie, echo `cat <plik>` działa równie dobrze.
Ta strona podręcznika jest niekompletna, prawdopodobnie niedokładna i należy do tych, które powinny być bardzo często poprawiane.
cat(1), dmesg(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), hdparm(8), ifconfig(8), init(8), lsmod(8), lspci(8), mount(8), netstat(8), procinfo(8), route(8), sysctl(8)
Pliki w źródłach jądra Linux: Documentation/filesystems/proc.txt i Documentation/sysctl/vm.txt
Angielska wersja tej strony pochodzi z wydania 3.52 projektu Linux man-pages. Opis projektu oraz informacje dotyczące zgłaszania błędów można znaleźć pod adresem http://www.kernel.org/doc/man-pages/.
Jiffy to wartość wynosząca, w zależności od architektury, od 1 do 10 ms (4 ms w przypadku i386).
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Przemek Borys (PTM) <pborys@p-soft.silesia.linux.org.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 3.52 oryginału.