proc
NAZWA
proc - pseudosystem plików z informacjami o procesach
OPIS
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.
/proc/[numer]
Każdemu działającemu procesowi odpowiada katalog o numerycznej
nazwie; nazwą tą jest identyfikator procesu. Każdy z tych kata-
logów zawiera następujące pseudopliki i podkatalogi:
/proc/[numer]/cmdline
Zawiera pełną linię polecenia wydanego przy uruchamianiu pro-
cesu, chyba że cały proces uległ wymianie lub jest to pro-
ces-duch (zombie). W obu tych przypadkach plik będzie pusty,
tzn. odczyt tego pliku zwróci zawsze 0 znaków. Argumenty linii
poleceń występują w tym pliku rozdzielone znakami NUL, z
dodatkowym znakiem NUL po ostatnim łańcuchu.
/proc/[numer]/cwd
Jest dowiązaniem do bieżącego katalogu roboczego procesu. Aby
dowiedzieć się, jaki jest katalog roboczy procesu, na przykład,
20, można wydać następujące polecenia:
cd /proc/20/cwd; /bin/pwd
Należy zauważyć, że polecenie pwd jest często wbudowanym polece-
niem powłoki i może nie działać w tym kontekście w sposób
właściwy. W bashu 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ł (najpraw-
dopodobniej wywołując pthread_exit(3)).
/proc/[numer]/environ
Plik ten zawiera środowisko procesu. Wpisy są oddzielone znakami
NUL ("�"), mogą także wystąpić znaki NUL na końcu. Dlatego, aby
wypisać zmienne środowiskowe procesu 1, należy wykonać:
(cat /proc/1/environ; echo) | tr "�00" "
"
(Aby dowiedzieć się, z jakiego powodu ktoś miałby chcieć coś
takiego zrobić, zobacz lilo(8).)
/proc/[numer]/exe
W Linuksie 2.2 i wersjach późniejszych plik ten jest dowiązaniem
symbolicznym zawierającym rzeczywistą nazwę ścieżki działającego
polecenia. Dowiązaniem symbolicznym można się normalnie
posługiwać - próba jego otwarcia otworzy plik programu. Można
nawet wydać polecenie /proc/[numer]/exe, aby uruchomić kolejną
kopię tego samego procesu co [numer].W procesie wielowątkowym
zawartość tego linku symbolicznego nie jest dostępna, jeżeli
główny wątek już się zakończył (wywołując zapewne
pthread_exit(3)).
W Linuksie 2.0 i wcześniejszych wersjach, /proc/[numer]/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 par-
tycja pierwszego dysku).
Do zlokalizowania pliku, można posłużyć się poleceniem find(1) z
opcją -inum.
/proc/[numer]/fd
Jest to podkatalog zawierający po jednym wpisie dla każdego
otwartego przez proces pliku; nazwą tego wpisu jest deskryptor
pliku i jest on dowiązaniem symbolicznym do rzeczywistego pliku.
Dlatego 0 jest standardowym wejściem, 1 jest standardowym
wyjściem, 2 jest standardową diagnostyką, itd.
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)).
Można to efektywnie wykorzystać do oszukania programów, które
pobierają dane wejściowe z pliku, lecz nie czytają swojego stan-
dardowego wejścia i które zapisują do pliku, lecz nie wysyłają
danych wyjściowych na standardowe wyjście. 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.
/proc/[numer]/maps
Plik zawierający aktualnie zmapowane obszary pamięci wraz z
prawami dostępu do nich.
Format pliku jest następujący:
address perms offset dev inode pathname
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
gdzie address jest przestrzenią adresemową procesu, który ją
zajmuje, perms jest zbiorem uprawnień:
r = odczyt
w = zapis
x = wykonywanie
s = wspólne
p = prywatne (kopiowane przy zapisie)
offset jest przesunięciem w pliku/czymkolwiek, dev zawiera
numeru (główny:poboczny) urządzenia, a inode 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 ma miejsce z bss.
W Linuksie 2.0 nie ma pola pathname podającego nazwę ścieżki.
/proc/[numer]/mem
Za pośrednictwem tego pliku można korzystając z open(2), read(2)
i fseek(3) uzyskać dostęp do stron pamięci procesu.
/proc/[numer]/root
UNIX i Linux wspierają pomysł określonego dla każdego procesu
osobno katalogu głównego systemu plików, ustawianego przez
wywołanie systemowe chroot(2). Plik ten wskazuje na katalog
główny systemu plików i zachowuje się jak exe, fd/*, itp.
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)).
/proc/[numer]/smaps (od wersji Linuksa 2.6.14)
Plik ten pokazuje zużycie pamięci dla każdego mapowania procesu.
Dla każdego takiego mapowania pokazana jest lista następujących
linii:
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
Pierwsza z tych linii pokazuje te same informacje o mapowaniach,
co w /proc/[numer]/maps. Pozostałe linie zawierają rozmiar
mapowania, ilość mapowań obecnych w RAM, liczbę czystych i brud-
nych stron współdzielonych w mapowaniu oraz liczbę czystych i
brudnych prywatnych stron w mapowaniu.
Ten plik istnieje tylko jeśli podczas kompilacji jądra włączono
opcję CONFIG_MMU.
/proc/[numer]/stat
Informacje o stanie procesu. Korzysta z tego ps(1). Są one
zdefiniowane w /usr/src/linux/fs/proc/array.c.
Kolejne pola i ich właściwe specyfikatory formatu scanf(3) to:
pid %d Identyfikator procesu (PID).
comm %s
Nazwa pliku wykonywalnego w nawiasach. Widać, czy plik
jest uległ wymianie.
state %c
Jeden znak spośród "RSDZTW", gdzie R oznacza proces
działający, S - proces uśpiony w oczekiwaniu przerywal-
nym, D - proces uśpiony w oczekiwaniu nieprzerywalnym, Z
- proces duch (zombie), T - śledzony lub zatrzymany
(przez sygnał), a W - którego strony zastąpiono.
ppid %d
PID procesu macierzystego.
pgrp %d
Identyfikator grupy procesów danego procesu.
session %d
Identyfikator sesji procesu.
tty_nr %d
Terminal (tty), z którego proces korzysta.
tpgid %d
Identyfikator grupy procesów, do której należy proces
będący właścicielem terminala (tty), do którego dany pro-
ces jest podłączony.
flags %lu
Słowo flag jądra dla danego procesu. Znaczenie
poszczególnych bitów określają definicje PF_* w pliku
. Szczegóły zależą od wersji jądra.
minflt %lu
Liczba drobnych błędów, które popełnił proces, a które
nie wymagały załadowania strony pamięci z dysku.
cminflt %lu
Liczba drobnych błędów procesów potomnych.
majflt %lu
Liczba głównych błędów, które popełnił proces, a które
wymagały załadowania strony pamięci z dysku.
cmajflt %lu
Liczba głównych błędów procesów potomnych.
utime %lu
Liczba jiffies (przerwań zegarowych), podczas których
proces był kolejkowany w trybie użytkownika.
stime %lu
Liczba jiffies, podczas których proces był kolejkowany w
trybie jądra.
cutime %ld
Liczba jiffies, podczas których procesy potomne były
kolejkowane w trybie użytkownika. (Zobacz także
times(2)).
cstime %ld
Liczba jiffies, podczas których procesy potomne były
kolejkowane w trybie jądra.
priority %ld
Standardowa wartość nice plus piętnaście. Wartość w
jądrze jest zawsze nieujemna.
nice %ld
Wartość nice znajduje się w zakresie od 19 (najmilszy) do
-19 (niemiły dla innych).
0 %ld Trwale przypisana wartość 0; jest to wypełniacz po
usuniętym polu.
itrealvalue %ld
Czas w jiffies poprzedzający wysłanie przez czasomierz do
procesu następnego sygnału SIGALRM.
starttime %lu
Czas uruchomienia procesu wyrażony w jiffies od uru-
chomienia systemu.
vsize %lu
Rozmiar pamięci wirtualnej w bajtach.
rss %ld
Resident Set Size: liczba stron, które proces ma w
rzeczywistej pamięci minus 3 dla celów administracyjnych.
Są to po prostu strony, które obejmują segment text, seg-
ment data i przestrzeń stosu. Nie obejmuje to stron,
które nie były ładowane na żądanie lub które uległy wymi-
anie.
rlim %lu
Aktualne ograniczenie rss procesu w bajtach (zwykle
4294967295 na i386).
startcode %lu
Adres, pod którym zaczyna się kod programu.
endcode %lu
Adres, pod którym kończy się kod programu.
startstack %lu
Adres początku stosu.
kstkesp %lu
Aktualna wartość esp (wskaźnika stosu), określona na pod-
stawie strony stosu jądra dla danego procesu.
kstkeip %lu
Aktualny EIP (wskaźnik instrukcji).
signal %lu
Mapa bitowa oczekujących sygnałów.
blocked %lu
Mapa bitowa ignorowanych sygnałów.
sigignore %lu
Mapa bitowa ignorowanych sygnałów.
sigcatch %lu
Mapa bitowa przechwyconych sygnałów.
wchan %lu
Jest to "kanał", na którym oczekuje proces. Jest to adres
funkcji systemowej i można go znaleźć na liście nazw,
jeśli potrzebna jest nazwa tekstowa. (Gdy /etc/psdatabase
jest aktualne, można zobaczyć działanie pola WCHAN,
próbująć ps -l.)
nswap %lu
Liczba stron, które uległy wymianie (nie konserwowane).
cnswap %lu
Łączna wartość nswap dla procesów potomnych (nie konser-
wowane).
exit_signal %d
Sygnał wysyłany przez ginący proces do jego procesu
macierzystego.
processor %d
Numer CPU, na którym proces ostatnio działał.
rt_priority %lu (od jądra 2.5.19)
Priorytet planowania czasu rzeczywistego (patrz
sched_setscheduler(2)).
policy %lu (od wersji jądra 2.5.19)
Polityka przydzielania zadaniom czasu procesora (patrz
sched_setscheduler(2)).
/proc/[numer]/statm
Udostępnia informacje o liczbie stron pamięci w danym stanie.
Występują następujące kolumny:
size łączny rozmiar programu
resident rozmiar części rezydentnej
share strony wspólne
text text (kod)
lib biblioteki
data dane/stos
dt strony nieaktualne (dirty; nieużywane w Linuksie
2.6)
/proc/[numer]/status
Udostępnia sporo informacji ze /proc/[numer]/stat i
/proc/[numer]/statm w postaci łatwiejszej do przeanalizowania
przez człowieka.
/proc/[numer]/task (od wersji jądra 2.6.0-test6)
Jest to katalog zawierający po jednym podkatalogu dla każdego
wątku procesu. Nazwą każdego podkatalogu jest numeryczne ID
wątku (patrz gettid(2)). Każdy z podkatalogów zawiera zbiór
plików o tej samej nazwie i zawartości, co katalogi
/proc/[numer]. Dla atrybutów, które są współdzielone przez
wszystkie wątki zawartość każdego z plików w podkatalogach
task/[ID-wątku] będzie taka sama jak zawartość odpowiednich
plików w nadrzędnym katalogu /proc/[numer] (np. w procesie
wielowątkowym wszystkie pliki task/[ID-wątku/cwd będą miały taką
samą zawartość, jak plik /proc/[numer]/cwd w katalogu
nadrzędnym, ponieważ wszystkie wątki procesu dzielą katalog
bieżący). Dla atrybutów, które dla każdego wątku są różne,
odpowiednie pliki wtask/[ID-wątku] mogą mieć różne wartości (np.
różne pola w każdym z plików task/[ID-wątku]/status mogą być
inne dla każdego wątku).
W procesie wielowątkowym zawartość katalogu /proc/[numer]/task
nie jest dostępna, jeżeli wątek główny już się zakończył
(najprawdopodobniej wywołując pthread_exit(3)).
/proc/apm
Wersja APM (Zaawansowane zarządzanie energią) oraz informacja o
akumulatorach, gdy CONFIG_APM było zdefiniowane podczas kompi-
lacji jądra.
/proc/bus
Zawiera podkatalogi odpowiadające zainstalowanym magistralom.
/proc/bus/pccard
Podkatalog dla urządzeń pcmcia, gdy CONFIG_PCMCIA było zdefin-
iowane podczas kompilacji jądra.
/proc/bus/pccard/drivers
/proc/bus/pci
Zawiera różne podkatalogi magistral oraz pseudopliki zawierające
informacje o magistralach PCI, zainstalowanych urządzeniach oraz
sterownikach urządzeń. Niektóre z tych plików nie są w postaci
ASCII.
/proc/bus/pci/devices
Informacje o urządzeniach PCI. Dostęp do nich może się odbywać
poprzez lspci(8) i setpci(8).
/proc/cmdline
Argumenty przekazane jądru Linuksa podczas startu systemu.
Zazwyczaj odbywa się to poprzez zarządcę startu systemu, takiego
jak lilo(1).
/proc/cpuinfo
Jest to zbiór elementów zależnych od CPU i architektury systemu;
dla każdej wspieranej architektury jest inna lista. Dwa
popularne wpisy to: processor, który udostępnia numer CPU oraz
bogomips; jest to stała systemowa, wyliczona podczas inicjaliza-
cji jądra. Maszyny SMP zawierają informacje o każdym z proce-
sorów.
/proc/devices
Listing tekstowy numerów głównych oraz grup urządzeń. Może to
służyć skryptom MAKEDEV do zachowania spójności z jądrem.
/proc/diskstats (od wersji Linuksa 2.5.69)
Plik zawiera statystyki operacji wejścia/wyjścia dla każdego
urządzenia dyskowego. Dalsze informacje można znaleźć w pliku
Documentation/iostats.txt w źródłach jądra.
/proc/dma
Jest listą zarejestrowanych i używanych kanałów DMA (direct mem-
ory access) szyny ISA.
/proc/driver
Pusty podkatalog.
/proc/execdomains
Lista domen uruchamiania (wcieleń ABI [Application Binary Inter-
face - przyp. tłum.]).
/proc/fb
Informacje o framebuferze, o ile podczas kompilacji jądra
zdefiniowano CONFIG_FB.
/proc/filesystems
Listing tekstowy wkompilowanych w jądro systemów plików. Przy-
padkowo, informacje te są wykorzystywane przez mount(1) do kole-
jnego próbowania różnych systemów plików, gdy żadnego nie
podano.
/proc/fs
Pusty podkatalog.
/proc/ide
Katalog ten istnieje w systemach zawierających magistralę IDE.
Zawiera po jednym katalogu dla każdego kanału IDE oraz dla
przyłączonych urządzeń. Wśród plików są:
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 pro-
gram narzędziowy hdparm(8).
/proc/interrupts
Służy do zapamiętania liczby przerwań dla każdego IRQ w (przyna-
jmniej) architekturze i386. Łatwe do odczytu formatowanie, zro-
bione w ASCII.
/proc/iomem
Odwzorowanie portów we/wy w pamięci w Linuksie 2.4.
/proc/ioports
Jest to lista obecnie zarejestrowanych i używanych obszarów
portów we/wy.
/proc/kallsyms (od wersji Linuksa 2.5.71)
Zawiera wyeksportowane przez jądro definicje symboli, które są
używane przez narzędzia modules(X) do dynamicznego podłączania
ładowanych modułów. W wersji jądra Linuksa 2.5.47 i
wcześniejszych podobny plik z troszkę odmienną zawartością był
nazwany ksyms.
/proc/kcore
Plik ten reprezentuje pamięć fizyczną systemu i jest zachowany w
formacie pliku core dla ELF. Korzystając z tego pseudoplikiem
oraz z niezestripowanego binarnego pliku jądra
(/usr/src/linux/vmlinux), można za pomocą GDB testować aktualny
stan dowolnej struktury danych jądra.
Całkowity rozmiar tego pliku to rozmiar fizycznej pamięci (RAM)
plus 4KB.
/proc/kmsg
Plik ten może służyć do odczytu komunikatów jądra, zamiast
funkcji systemowej syslog(2). Aby odczytać ten plik, proces musi
mieć uprawnienia superużytkownika i tylko jeden proces powinien
dokonywać jego odczytu. Pliku tego nie należy czytać, gdy działa
proces syslog, korzystający z funkcji systemowej syslog(2) do
rejestrowania komunikatów jądra.
Z tego pliku pobiera komunikaty program dmesg(8).
/proc/ksyms (Linux 1.1.23-2.5.47)
Patrz /proc/kallsyms.
/proc/loadavg
Pierwsze trzy pola w tym pliku zawierają średnie obciążenie
(loadavg) podając informację o średniej liczbie zadań uru-
chomionych (stan R) oraz czekających na dyskowe operacje
wejścia/wyjścia (stan D) w ciągu ostatnich 1, 5 i 15 minut. Są
to te same wartości średniego obciążenia, które podaje uptime(1)
i inne programy. Czwarte pole zawiera dwie liczby oddzielone od
siebie znakiem ukośnika (/). Pierwsza z nich jest liczbą obecnie
uruchomionych zadań (procesów, wątków); wartość ta będzie
mniejsza lub równa liczbie CPU. Wartość za ukośnikiem jest
liczbą zadań, obecnych w systemie. Piąte pole zawiera PID
najnowszego ostatnio utworzonego procesu w systemie.
/proc/locks
Plik ten pokazuje aktualne blokady plików (flock(2) i fcntl(2))
oraz dzierżawy (fcntl(2)).
/proc/malloc
Ten plik istnieje tylko jeśli podczas kompilacji zdefiniowano
CONFIGDEBUGMALLOC.
/proc/meminfo
Plik ten jest używany przez free(1) do informowania o rozmiarze
wolnej i zajętej pamięci (zarówno fizycznej, jak i wymiany) w
systemie, a także o pamięci wspólnej i buforach używanych przez
jądro.
Jest on w tym samym formacie co free(1), poza tym, że podawanie
informacji odbywa się w bajtach, a nie w KB.
/proc/mounts
Jest to lista wszystkich systemów plików obecnie zamontowanych w
systemie. Format tego pliku jest udokumentowany w fstab(5). Od
wersji 2.6.15 jądra Linuksa, ten plik może być użyty w wywołaniu
funkcji poll(): po otwarciu tego pliku do odczytu, zmiana w nim
(np. montowanie lub odmontowanie systemu plików) powoduje, że
select(2) oznaczy deskryptor jako możliwy do odczytu, a poll(2)
i epoll_wait(2) zaznaczą, że w pliku wystąpił błąd.
/proc/modules
Tekstowa lista modułów, które załadowano w systemie. Zobacz
także lsmod(8).
/proc/mtrr
Memory Type Range Registers. Szczegóły można znaleźć w
/usr/src/linux/Documentation/mtrr.txt.
/proc/net
Różne sieciowe pseudopliki, z których wszystkie podają stan
pewnej części warstwy sieciowej. Plik ten zawiera struktury
ASCII i dlatego nadaje się do odczytu za pomocą cat. Jednak
standardowy pakiet netstat(8) daje dużo czystszy dostęp do tych
plików.
/proc/net/arp
Zawiera zrzut tabeli ARP jądra używanej do rozwiązywania
adresów, w czytelnej postaci ASCII. Pokazane zostaną zarówno
wyuczone dynamicznie, jak i wstępnie zaprogramowane wpisy w
tabeli ARP. Format jest następujący:
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.
/proc/net/dev
Pseudoplik dev zawiera informacje o stanie urządzenia
sieciowego. Zawierają one liczbę otrzymanych i wysłanych
pakietów, liczbę błędów i kolizji oraz inne podstawowe
statystyki. Informacje te są wykorzystywane przez program ifcon-
fig(8) do informowania o stanie urządzenia. Format jest
następujący:
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
Zdefiniowany w /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
Internetowy Protokół Zarządzania Grupami. Zdefiniowany w
/usr/src/linux/net/core/igmp.c.
/proc/net/rarp
Plik ten ma ten sam format, co plik arp i zawiera aktualną bazę
odwrotnych odwzorowań, używaną do udostępniania usług odwrotnego
poszukiwania adresów rarp(8). Jeśli RARP nie jest skonfigurowane
w jądrze, to plik ten nie będzie istniał.
/proc/net/raw
Zawiera zrzut tabeli gniazd surowych (RAW). Większość informacji
nie jest przeznaczona do użytku innego niż odpluskwiania.
Wartość ,,sl" jest slotem mieszania jądra dla gniazda, ,,local
address" jest parą składającą się z lokalnego adresu i numeru
protokołu. ,,st" jest stanem wewnętrznym gniazda. ,,tx_queue" i
,,rx_queue" są kolejkami danych przychodzących i wychodzących, w
sensie zużycia pamięci jądra. Pola ,,tr", ,,tm->when" i
,,rexmits" nie są używane przez gniazda surowe. Pole ,,uid" zaw-
iera efektywny UID twórcy gniazda.
/proc/net/snmp
Ten plik zawiera dane ASCII potrzebne bazom agenta snmp
zarządzającym informacjami o IP, ICMP, TCP i UDP.
/proc/net/tcp
Zawiera zrzut tabeli gniazd TCP. Wiele informacji nie przydaje
się do użytku poza odpluskwianiem. Wartość "sl" jest slotem
mieszania jądra dla gniazda, "local address" jest parą
składającą się z lokalnego adresu i numeru portu. "remote
addres" jest parą składającą się ze zdalnego adresu i numeru
portu (jeśli gniazdo jest podłączone). ,,st" jest stanem
wewnętrznym gniazda. ,,tx_queue" i ,,rx_queue" są kolejkami
danych przychodzących i wychodzących w sensie zużycia pamięci
jądra. Pola ,,tr", ,,tm-when" i ,,rexmits" zawierają wewnętrzne
informacje o stanie gniazda w jądrze i są przydatne tylko do
odpluskwiania. Pole ,,uid" zawiera efektywny UID twórcy gniazda.
/proc/net/udp
Zawiera zrzut tabeli gniazd UDP. Wiele informacji nie przydaje
się do użytku poza odpluskwianiem. Wartość ,,sl" jest slotem
mieszania jądra dla gniazda, ,,local address" jest parą
składającą się z lokalnego adresu i numeru portu. ,,remote
addres" jest parą składającą się ze zdalnego adresu i numeru
portu (jeśli gniazdo jest podłączone). ,,st" jest stanem
wewnętrznym gniazda. ,,tx_queue" i ,,rx_queue" są kolejkami
danych przychodzących i wychodzących w sensie zużycia pamięci
jądra. Pola ,,tr", ,,tm-when" i ,,rexmits" nie są używane w gni-
azdach UDP. Pole ,,uid" zawiera efektywny UID twórcy gniazda.
Format jest następujący:
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
Wymienia gniazda domeny UNIX, obecne w systemie oraz ich stan.
Format jest następujący:
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.
/proc/partitions
Zawiera liczby główne i poboczne każdej z partycji oraz liczby
bloków i nazwy partycji.
/proc/pci
Listing wszystkich urządzeń PCI znalezionych podczas inicjaliza-
cji jądra i ich konfiguracja.
/proc/scsi
Katalog z pseudoplikiem scsi na pośrednim poziomie i różnymi
podkatalogami niskopoziomowych sterowników SCSI, zawierającymi
po jednym pliku dla każdego kontrolera SCSI w danym systemie;
każdy z nich podaje stan jakiejś części podsystemu we/wy SCSI.
Pliki te zawierają struktury ASCII i dlatego nadaje się do
odczytu za pomocą cat.
Możliwy jest też zapis do niektórych z tych plików, w celu
rekonfiguracji podsystemu, lub przełączania różnych parametrów.
/proc/scsi/scsi
Jest listingiem wszystkich znanych jądru urządzeń SCSI. Listing
jest podobny do widzianego podczas ładowania systemu. scsi
wspiera obecnie tylko polecenie add-single-device umożliwiające
rootowi dodanie do listy znanych urządzeń urządzenia włączonego
na gorąco.
Polecenie echo "scsi add-single-device 1 0 5 0" >
/proc/scsi/scsi spowoduje, że kontroler scsi1 przeprowadzi
skanowanie kanału SCSI 0 w poszukiwaniu urządzenia o ID 5 i LUN
0. Jeśli już istnieje urządzenie o takim adresie, lub adres jest
nieprawidłowy, zostanie zwrócony błąd.
/proc/scsi/[drivername]
[drivername] może obecnie być jednym z: NCR53c7xx, aha152x,
aha1542, aha1740, aic7xxx, buslogic, eata_dma, eata_pio, fdo-
main, in2000, pas16, qlogic, scsi_debug, seagate, t128, u15-24f,
ultrastore, or wd7000. Ukazują się te z katalogów, dla których
odpowiednie sterowniki zarejestrowały przynajmniej jeden kon-
troler SCSI. Każdy katalog zawiera jeden plik dla każdego zare-
jestrowanego kontrolera. Każdy z plików kontrolera ma nazwę
odpowiadającą numerowi kontrolera, przyznanemu podczas jego
inicjacji.
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 kon-
trolerach. Na przykład za pomocą poleceń latency i nolatency
root może uaktywniać lub deaktywować kod pomiaru czasu oczekiwa-
nia 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.
/proc/self
Ten katalog odnosi się do procesu korzystającego z systemu
plików /proc i jest identyczny z katalogiem o nazwie będącej
jego PID-em.
/proc/slabinfo
Informacje dotyczące buforów (cache) jądra. Występują
następujące kolumny:
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).
/proc/stat
statystyki jądra/systemu. Różnią się pomiędzy architekturami.
Wśród wspólnych wpisów są:
cpu 3357 0 4313 1362393
Ilość czasu, wyrażona w USER_HZ (jedna setna sekundy na
większości architektur), które system spędził w trybie
użytkownika, trybie użytkownika o obniżonym priorytecie
(nice), trybie systemowym i w zadaniu idle. Ostatnia
wartość powinna być równa iloczynowi wartości USER_HZ z
drugim wpisem w pseudopliku uptime.
W Linuksie 2.6 linia ta zawiera trzy dodatkowe
kolumny:iowait - czas oczekiwania na zakończenie operacji
I/O (od wersji 2.5.41); irq - czas obsługiwania przerwań
(od 2.6.0-test4); softirq - cxzas obsługiwania miękkich
przerwań (softirqs) (od 2.6.0-test4).
page 5741 1808
Liczba stron, które system wstronicował i liczba tych,
które wystronicował (z dysku).
swap 1 0
Liczba stron wymiany, które wniesiono i wyniesiono.
intr 1462898
Linia ta pokazuje licznik przerwań obsłużonych od czasu
uruchomienia dla każdego możliwego przerwania syste-
mowego. Pierwsza kolumna określa całkowitą liczbę wszyst-
kich obsłużonych przerwań, każda następna określa
całkowitą wartość dla danego przerwania.
disk_io: (2,0):(31,30,5764,1,2) (3,0):...
(major,minor):(noinfo, read_io_ops, blks_read,
write_io_ops, blks_written)
(tylko Linux 2.4)
ctxt 115315
Liczba przełączeń kontekstu, które przeszedł system.
btime 769041601
Czas uruchomienia systemu, w sekundach, od epoki (1 sty-
cznia 1970).
processes 86031
Liczba rozwidleń procesów od uruchomienia systemu.
procs_running 6
Liczba procesów w stanie runnable (Linux 2.5.45 i
późniejsze).
procs_blocked 2
Liczba procesów oczekujących na zakończenie operacji
wejścia/wyjścia (Linux 2.5.45 i późniejsze).
/proc/swaps
Używane obszary wymiany. Zobacz także swapon(8).
/proc/sys
Katalog ten (obecny od 1.3.57) zawiera wiele plików i podkata-
logów odpowiadających zmiennym jądra. Zmienne te mogą być odczy-
tywane i czasem modyfikowane za pośrednictwem systemu plików
proc, jak też przy wykorzystaniu funkcji systemowej sysctl(2).
Istnieją w nim aktualnie podkatalogi abi, debug, dev, fs, ker-
nel, net, proc, rxrpc, sunrpc i vm, z których każdy zawiera
więcej plików i podkatalogów.
/proc/sys/abi
Ten katalog może zawierać pliki z binarną informacją o
aplikacji. W niektórych systemach nie występuje.
/proc/sys/debug
Ten katalog może być pusty.
/proc/sys/dev
Ten katalog zawiera informacje specyficzne dla poszczególnych
urządzeń. (np. dev/cdrom/info). W niektórych systemach może być
pusty.
/proc/sys/fs
Zawiera podkatalogi binfmt_misc, inotify, and mqueue oraz pliki
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 i super-nr.
/proc/sys/fs/binfmt_misc
Dokumentacja plików z tego katalogu znajduje się w źródłach
jądra w Documentation/binfmt_misc.txt.
/proc/sys/fs/dentry-state
Zawiera sześć liczb: nr_dentry, nr_unused, age_limit (wiek w
sekundach), want_pages (strony, których zażądał system) oraz
dwie wartości nieużywane. nr_dentry wydaje się być cały czas
równe 0. nr_unused wydaje się oznaczać liczbę nieużywanych den-
try. age_limit jest wyrażonym w sekundach wiekiem dentry, po
osiągnięciu którego wpisy w cache"u dentry mogą zostać
odzyskane, gdy brakuje pamięci i want_pages ma wartość nieze-
rową, podczas gdy jądro wywołało shrink_dcache_pages() oraz
cache dentry nie został jeszcze wyczyszczony.
/proc/sys/fs/dir-notify-enable
Plik ten może służyć do wyłączania lub włączania interfejsu dno-
tify opisanego w fcntl(2) dla całego systemu. Wartość 0 w tym
pliku wyłącza interfejs, a wartość 1 go włącza.
/proc/sys/fs/dquot-max
Zawiera maksymalną liczbę buforowanych wpisów kwot dyskowych. W
niektórych (2.4) systemach nie występuje. Gdy liczba wolnych
zbuforowanych kwot dyskowych jest bardzo mała, a jest prz-
erażająca liczba jednoczesnych użytkowników systemu, może ist-
nieć potrzeba zwiększenia tego ograniczenia.
/proc/sys/fs/dquot-nr
Zawiera liczbę przydzielonych wpisów kwot dyskowych oraz liczbę
wolnych wpisów kwot dyskowych.
/proc/sys/fs/file-max
Zawiera ogólnosystemowe ograniczenie liczby plików otwartych
przez wszystkie procesy. (Zobacz także setrlimit(2), które może
służyć procesom do ustawiania ograniczenia dla procesu,
RLIMIT_NOFILE, jako liczby plików, które proces może otworzyć).
Gdy otrzymuje się mnóstwo komunikatów o przekroczeniu liczby
uchwytów plików (file handles), to można spróbować zwiększyć tę
wartość:
echo 100000 > /proc/sys/fs/file-max
Stała jądra NR_OPEN narzuca górne ograniczenie wartości, która
może zostać umieszczona 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.
/proc/sys/fs/file-nr
Ten (tylko do odczytu) plik określa liczbę aktualnie otwartych
plików. Zawiera on trzy liczby: liczbę przydzielonych uchwytów
plików, liczbę wolnych uchwytów plików oraz maksymalną liczbę
uchwytów plików. Jądro przydziela uchwyty plików dynamicznie,
ale ich później nie zwalnia. Gdy liczba przydzielonych uchwytów
plików zbliża się do
maksimum, należy rozważyć zwiększenie tego maksimum. Gdy jest
duża liczba wolnych uchwytów plików, oznacza to, że wystąpiło
przesilenie w wykorzystaniu uchwytów plików i, prawdopodobnie,
niema potrzeby zwiększania maksimum.
/proc/sys/fs/inode-max
Ten plik zawiera maksymalną liczbę i-węzłów w pamięci. W
niektórych (2.4) systemach może nie występować. Wartość ta
powinna być 3-4 razy większa niż wartość w file-max, gdyż stdin,
stdout i gniazda sieciowe również potrzebują i-węzłów, aby można
było na nich operować. Gdy systematycznie brakuje i-węzłów, ist-
nieje potrzeba zwiększenia tej wartości.
/proc/sys/fs/inode-nr
Zawiera dwie pierwsze wartości z inode-state.
/proc/sys/fs/inode-state
Zawiera siedem liczb: nr_inodes, nr_free_inodes, preshrink i
cztery wartości nieużywane. nr_inodes jest liczbą przydzielonych
w systemie i-węzłów. Może ona być nieco większa niż inode-max,
gdyż Linux przydziela je pełnymi stronami. nr_free_inodes przed-
stawia liczbę wolnych i-węzłów. preshrink jest niezerowe, gdy
nr_inodes > inode-max oraz w systemie występuje potrzeba
wyczyszczenia listy i-węzłów zamiast przydzielania nowych.
/proc/sys/fs/inotify (od wersji Linuksa 2.6.13)
Ten katalog zawiera pliki max_queued_events, max_user_instances
i max_user_watches, których można użyć, aby ograniczyć ilość
pamięci jądra używanej przez interfejs inotify. Więcej
szczegółów można znaleźć w inotify(7).
/proc/sys/fs/lease-break-time
Określa okres ulgi, przez jaki jądro zapewnia procesowi utrzy-
manie dzierżawy pliku (fcntl(2)), a po którym wyśle do tego pro-
cesu sygnał zawiadamiający go, że inny proces oczekuje na otwar-
cie pliku. Jeśli utrzymujący dzierżawę nie usunie jej lub nie
ograniczy swoich praw do niej w przeciągu tego czasu, jądro
wymusi zerwanie dzierżawy.
/proc/sys/fs/leases-enable
Ten plik może służyć do ogólnosystemowego włączania lub wyłącza-
nia dzierżaw plików (fcntl(2)). Gdy plik ten zawiera wartość 0,
dzierżawy są wyłączone. Wartość niezerowa włącza dzierżawy.
/proc/sys/fs/mqueue (od wersji Linuksa 2.6.6)
Ten katalog zawiera pliki msg_max, msgsize_max i queues_max,
kontrolujące zasoby używane przez kolejki komunikatów POSIX.
Szczegółowe informacje można znaleźć w mq_overview(7).
/proc/sys/fs/overflowgid and /proc/sys/fs/overflowuid
Te pliki umożliwiają zmianę wartości ustalonego UID-u i GID-u.
Wartością domyślną jest 65534. Niektóre systemy plików wspierają
jedynie 16-bitowe UID-y i GID-y, podczas gdy linuksowe UID-y i
GID-y są 32-bitowe. Gdy któryś z takich systemów plików jest
zamontowany z możliwością zapisu, to wszystkie UID-y i GID-y
przekraczające 65535 są zastępowane podanymi tu wartościami
przed zapisem na dysk.
/proc/sys/fs/suid_dumpable (od wersji Linuksa 2.6.13)
Wartość w tym pliku określa, czy pliki zrzutów pamięci są twor-
zone dla programów mających ustawiony bit set-user-ID albo chro-
nionych w jakiś inny sposób. Można podać trzy różne wartości
liczbowe:
0 (domyślny). Jest to tradycyjne zachowanie (sprzed Linuksa
2.6.13). Zrzut pamięci nie będzie tworzony dla procesu, który
zmienił swoje uprawnienia (wywołując seteuid(2), setgid(2) lub
podobną funkcję albo gdy program miał ustawiony bit set-user-ID
lub set-group-ID) albo gdy uprawnienia nadane plikowi binarnemu
programu zabraniają jego odczytywania.
1 ("debug"). Jeżeli jest to możliwe, to wszystkie procesy
wykonują zrzut pamięci. Właścicielem pliku zrzutu jest
użytkownik, którego uprawnienia do systemu plików ma proces
wykonujący zrzut. Nie są stosowane żadne mechanizmy bez-
pieczeństwa. Jest to przeznaczone tylko do celów debugowania.
Ptrace nie jest sprawdzane.
2 ("suidsafe"). Zrzut pamięci programu, dla którego w normalnej
sytuacji taki zrzut nie zostałby wykonany(patrz wyżej "0"), może
być odczytany tylko przez administratora (root). Pozwala to
użytkownikowi usunąć plik ze zrzutem, ale nie pozwala na jego
odczytanie. Z powodów bezpieczeństwa w tym trybie pliki zrzutu
nie nadpisują istniejących plików. Ten tryb jest odpowiedni, gdy
administrator będzie chciał debugować problemy w naturalnym
środowisku.
/proc/sys/fs/super-max
Plik steruje maksymalną liczbą superbloków, a więc i maksymalną
liczbą systemów plików, które jądro może zamontować. Potrzeba
zwiększenia wartości super-max występuje tylko wtedy, gdy chce
się zamontować więcej systemów plików, niż na to pozwala aktu-
alna wartość super-max.
/proc/sys/fs/super-nr
Plik zawiera liczbę obecnie zamontowanych systemów plików.
/proc/sys/kernel
Ten katalog zawiera pliki acct, cad_pid, cap-bound, core_pat-
tern, core_uses_pid, ctrl-alt-del, dentry-state, domainname,
hotplug, hostname, htab-reclaim (tylko PowerPC),
java-appletviewer (binfmt_java, przestarzały), java-interpreter
(binfmt_java, przestarzały), l2cr (tylko PowerPC), modprobe,
msgmax, msgmnb, msgmni, osrelease, ostype, overflowgid, over-
flowuid, panic, panic_on_oops, pid_max, powersave-nap (tylko
PowerPC ), printk, pty, random, real-root-dev, reboot-cmd (tylko
SPARC), rtsig-max, rtsig-nr, sem, sg-big-buff, shmall, shmmax,
shmmni, sysrq, tainted, threads-max, version i zero-paged (tylko
PowerPC).
/proc/sys/kernel/acct
Plik zawiera trzy liczby: highwater, lowwater i frequency. Gdy
włączone jest rejestrowanie procesów w stylu BSD, wartości te
sterują jego zachowaniem. Gdy ilość wolnego miejsca w systemie
plików, na którym znajdują się logi, spada poniżej wyrażonej w
procentach wartości lowwater, rejestrowanie jest wstrzymywane.
Gdy ilość wolnego miejsca stanie się większa niż wyrażona w pro-
centach wartość highwater, rejestrowanie jest wznawiane. fre-
quency określa, jak często jadro będzie sprawdzać ilość wolnego
miejsca (wartość w sekundach). Wartościami domyślnymi są 4, 2 i
30. Oznacza to, że rejestrowanie procesów jest wstrzymywane, gdy
ilość wolnego miejsca będzie <= 2%; wznowione zostanie, gdy
wolne będzie >= 4%; zakłada się, że informacja o ilości wolnego
miejsca jest ważna przez 30 sekund.
/proc/sys/kernel/cap-bound
Plik przechowuje wartość capability bounding set dla jądra
(wyrażone jako liczba dziesiętna ze znakiem). Wartość ta jest
mnożona (AND) bitowo z capabilities dozwolonymi dla procesu pod-
czas exec().
/proc/sys/kernel/core_pattern
Patrz core(5). /proc/sys/kernel/core_uses_pid Patrz core(5).
/proc/sys/kernel/ctrl-alt-del
Ten plik steruje obsługą kombinacji klawiszy Ctrl-Alt-Del. Gdy w
pliku tym znajduje się wartość 0, Ctrl-Alt-Del jest przechwyty-
wane i przesyłane do programu init(1) w celu wykonania
wdzięcznego restartu. Gdy wartość jest > 0, reakcją Linuksa na
Wulkanicznie Nerwowe Nękanie (Vulcan Nerve Pinch (tm)) będzie
natychmiastowy restart, nawet bez zrzucenia zmodyfikowanych
buforów. Uwaga: gdy program (jak np. dosemu) korzysta z surowego
trybu klawiatury, Ctrl-Alt-Del jest przechwytywane przez pro-
gram, zanim dotrze do warstwy terminalowej jądra i decyzja, co z
tym zrobić, zależy od programu.
/proc/sys/kernel/hotplug
Plik ten zawiera ścieżkę do programu hotplug. Domyślną wartością
w tym pliku jest "/sbin/hotplug".
/proc/sys/kernel/domainname i /proc/sys/kernel/hostname
Te pliki mogą służyć do ustawiania nazwy domeny i hosta NIS/YP
maszyny dokładnie w ten sam sposób, jak za pomocą poleceń
domainname i hostname, np.:
# 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).
/proc/sys/kernel/htab-reclaim
(Tylko PowerPC) Jeśli do tego pliku zostanie wpisana wartość
niezerowa, htab PowerPC (zobacz: plik Documentation/pow-
erpc/ppc_htab.txt w źródłach jądra) jest czyszczony za każdym
razem, gdy system natrafi na pętlę oczekiwania ("idle").
/proc/sys/kernel/l2cr
(Tylko PowerPC) Plik zawiera znacznik sterujący cache"em L2 płyt
procesora G3. Jeśli zawiera 0, cache jest wyłączony. Cache jest
włączony, gdy plik zawiera wartość różną od zera.
/proc/sys/kernel/modprobe
Plik opisano w źródłach jądra w pliku Documentation/kmod.txt.
/proc/sys/kernel/msgmax
Zawiera ogólnosystemowe ograniczenie maksymalnej liczby bajtów w
pojedynczym komunikacie zapisywanym do kolejki komunikatów
Systemu V.
/proc/sys/kernel/msgmni
Określa ogólnosystemowe ograniczenie liczby identyfikatorów
kolejek komunikatów. (Plik ten występuje począwszy od Linuksa
2.4).
/proc/sys/kernel/msgmnb
Zawiera ogólnosystemowy parametr służący do inicjacji ustawienia
msg_qbytes tworzonych później kolejek komunikatów. Ustawienie
msg_qbytes określa maksymalną liczbę bajtów, które mogą zostać
zapisane do kolejki komunikatów.
/proc/sys/kernel/ostype i /proc/sys/kernel/osrelease
Pliki te zawierają poszczególne części z /proc/version.
/proc/sys/kernel/overflowgid i /proc/sys/kernel/overflowuid
Pliki te są kopiami plików /proc/sys/fs/overflowgid i
/proc/sys/fs/overflowuid.
/proc/sys/kernel/panic
Umożliwia dostęp (odczyt i zapis) do zmiennej jądra panic_time-
out. Jeśli jest to zero, jądro będzie się zapętlać podczas
paniki; jeśli wartość niezerowa, to określa liczbę sekund, po
której jądro powinno się automatycznie przeładować. Jeśli
używany jest software watchdog to zalecaną wartością jest 60.
/proc/sys/kernel/panic_on_oops
Plik ten (nowy w Linuksie 2.5) kontroluje zachowanie jądra,
kiedy wystąpi oops lub BŁĄD. Jeśli ten plik zawiera 0, to system
próbuje kontynuować operację. Jeśli zawiera 1, to system czeka
parę sekund (aby dać procesowi klogd czas na zapisanie wyjścia z
oops), a następnie panikuje. Jeżeli wartość w pliku
/proc/sys/kernel/panic również jest niezerowa, to nastąpi
restart komputera.
/proc/sys/kernel/pid_max
Ten plik (nowy w Linuksie 2.5) określa wartość po której nastąpi
przewinięcie licznika PID (tj. wartość w tym pliku jest o 1
większa niż maksymalny PID). Domyślna wartość tego pliku, czyli
32768, określa taki sam zakres wartości PID, jak wcześniejsze
wersje jądra. Dla platform 32-bitowych 32768 jest maksymalną
wartością, jaką może przyjmować pid_max. W systemach 64-bitowych
pid_max może zostać ustawiony na dowolną wartość, aż do 2^22
(PID_MAX_LIMIT, około 4 milionów).
/proc/sys/kernel/powersave-nap (tylko PowerPC)
Plik zawiera znacznik. Gdy jest on ustawiony, Linux-PPC używa
trybu oszczędzania energii "nap", a w przeciwnym przypadku trybu
"doze".
/proc/sys/kernel/printk
Cztery wartości w pliku printk to: console_loglevel,
default_message_loglevel, minimum_console_level i default_con-
sole_loglevel. Wartości te wpływają na zachowanie printk() pod-
czas wypisywania lub logowania komunikatów błędów. Informacja o
różnych poziomach logowania można znaleźć w syslog(2). Komu-
nikaty o priorytecie wyższym niż console_loglevel będą wypisy-
wane na konsoli. Komunikaty bez jawnego priorytetu będą wypisy-
wane z priorytetem default_message_level. minimum_con-
sole_loglevel jest najmniejszą (najwyższą) wartością, którą
można ustawić jako console_loglevel. default_console_loglevel
jest domyślną wartością dla console_loglevel.
/proc/sys/kernel/pty (od wersji Linuksa 2.6.4)
Ten katalog zawiera dwa pliki związane z liczbą pseudoterminali
Unix 98 (patrz pts(4)) w systemie.
/proc/sys/kernel/pty/max
Plik określa maksymalną liczbę pseudoterminali.
/proc/sys/kernel/pty/nr
Ten plik tylko do odczytu zawiera informację o liczbie obecnie
używanych pseudoterminali.
/proc/sys/kernel/random
Katalog ten zawiera różne parametry sterujące działaniem pliku
/dev/random. Dalsze informacje można znaleźć w random(4).
/proc/sys/kernel/real-root-dev
Plik ten jest udokumentowany w pliku Documentation/initrd.txt w
źródłach jądra.
/proc/sys/kernel/reboot-cmd (Sparc only)
Ten plik wydaje się stanowić mechanizm podawania argumentów
SPARC-owej ładowarce systemu w ROM/Flash. Może przekazuje jej,
co zrobić po restarcie?
/proc/sys/kernel/rtsig-max
(Tylko w wersjach jądra nie późniejszych niż 2.6.7; patrz setr-
limit(2)). Plik ten może służyć do sterowania maksymalną liczbą
zgodnych z POSIX nieobsłużonych (w kolejkach) sygnałów czasu
rzeczywistego w systemie.
/proc/sys/kernel/rtsig-nr
(Tylko w wersjach jądra nie późniejszych niż 2.6.7). Plik ten
podaje liczbę zgodnych z POSIX sygnałów czasu rzeczywistego
oczekujących obecnie w kolejce.
/proc/sys/kernel/sem (od wersji Linuksa 2.4)
Plik ten zawiera 4 liczby definiujące ograniczenia semaforów
Systemu V. Są to w kolejności:
SEMMSL Maksymalna liczba semaforów w zestawie semaforów.
SEMMNS Ogólnosystemowe ograniczenie liczby semaforów we wszyst-
kich zestawiach semaforów.
SEMOPM Maksymalna liczba operacji, które mogą zostać podane w
wywołaniu semop(2).
SEMMNI Ogólnosystemowe ograniczenie maksymalnej liczby identy-
fikatorów semaforów.
/proc/sys/kernel/sg-big-buff
Plik ten zawiera rozmiar bufora niskopoziomowego urządzenia SCSI
(sg). Nie można nim na razie sterować, ale można go zmienić pod-
czas kompilacji poprzez edycję include/scsi/sg.h i zmianę
wartości SG_BIG_BUFF. Jednakże nie ma żadnego powodu, aby to
robić.
/proc/sys/kernel/shmall
Ten plik zawiera ogólnosystemowe ograniczenie całkowitej liczby
stron pamięci wspólnej Systemu V.
/proc/sys/kernel/shmmax
Ten plik może służyć do odpytywania o aktualne ograniczenie
maksymalnego rozmiaru tworzonego segmentu pamięci wspólnej (Sys-
tem V IPC) oraz do zmiany tego ograniczenia. Jadro wspiera obec-
nie segmenty pamięci wspólnej do 1GB. Wartością domyślną jest
SHMMAX.
/proc/sys/kernel/shmmni
(dostępny począwszy od Linuksa 2.4) Ten plik określa ogólnosys-
temową maksymalną liczbę segmentów pamięci wspólnej Systemu V,
które można utworzyć.
/proc/sys/kernel/version
zawiera tekst jak np.:
#5 Wed Feb 25 21:49:24 MET 1998.TP
"#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.
/proc/sys/kernel/zero-paged (PowerPC only)
Plik zawiera znacznik. Gdy jest on ustawiony (niezerowy),
Linux-PPC wstępnie zeruje strony w pętli bezczynności. Praw-
dopodobnie przyspiesza to get_free_pages.
/proc/sys/net
Ten katalog zawiera rzeczy związane z siecią. Wyjaśnienia
dotyczące niektórych plików zawartych w tym katalogu można
znaleźć w tcp(7) i ip(7).
/proc/sys/proc
Ten katalog może być pusty.
/proc/sys/sunrpc
Ten katalog obsługuje Sunowskie zdalne wywoływanie procedur dla
sieciowego systemu plikowego (NFS). W niektórych systemach może
nie istnieć.
/proc/sys/vm
Ten katalog zawiera pliki sterujące zarządzaniem pamięcią,
buforami i zarządzaniem cachem.
/proc/sys/vm/drop_caches (od wersji Linuksa 2.6.16)
Zapis do tego pliki powoduj zwolnienie przez jądro czystych
buforów, dentries ii-węzłów z pamięci, zwalniając tę pamięć.
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 stron-
icowania, 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).
/proc/sys/vm/legacy_va_layout (od wersji Linuksa 2.6.9)
Wartość niezerowa oznacza wyłączenie nowego, 32-bitowego
rozmieszczenia mapowania pamięci; jądro będzie używać starego
(2.4) rozmieszczenia dla wszystkich procesów.
/proc/sys/vm/overcommit_memory
Plik zawiera tryb rozliczeń pamięci wirtualnej jądra.
Dopuszczalne wartości:
0: heurystyczny overcommit (domyślnie)
1: zawsze robi overcommit, nigdy nie sprawdza
2: zawsze sprawdza, nigdy nie robi overcommitu
W trybie 0 nie są sprawdzane wywołania mmap(2) z MAP_NORESERVE,
a domyślne sprawdzenia są bardzo słabe, prowadząc do ryzyka
zabicia procesu przez "OOM-killera". Pod Linuksem 2.4 jakakol-
wiek wartość niezerowa oznacza tryb 1.W trybie 2 (dostępnym od
Linuksa 2.6), całkowity adres przestrzeni wirtualnej w systemie
jest ograniczony do (SS + RAM*(r/100)), gdzie SS jest rozmiarem
przestrzeni wymiany, RAM jest rozmiarem fizycznej pamięci, a r -
zawartością pliku /proc/sys/vm/overcommit_ratio.
/proc/sys/vm/overcommit_ratio
Zobacz opis /proc/sys/vm/overcommit_memory.
/proc/sysvipc
Podkatalog zawierający pseudopliki msg, sem i shm. Pliki te zaw-
ierają obiekty komunikacji międzyprocesowej (Interprocess Commu-
nication - IPC) Systemu V (odpowiednio: kolejki komunikatów,
semafory i pamięć wspólną) obecnie istniejące w systemie,
udostępniając informacje podobne do tych, które są dostępne
poprzez ipcs(1). Pliki te zawierają nagłówki i są sformatowane
(jeden obiekt IPC w wierszu) w celu łatwiejszego zrozumienia.
svipc(7) podaje dodatkowe informacje o zawartości tych plików.
/proc/tty
Podkatalog zawierający psuedopliki i podkatalogi sterowników
terminali (tty) oraz protokołów sterowania linią (line disci-
pline).
/proc/uptime
Ten plik zawiera dwie liczby: czas pracy systemu (w sekundach) i
ilość czasu spędzonego na wykonywaniu procesu idle (w sekun-
dach).
/proc/version
Ten napis określa wersję obecnie działającego jądra. Zawiera on
w sobie zawartość /proc/sys/ostype, /proc/sys/osrelease i
/proc/sys/version. Na przykład:
Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
/proc/vmstat (od wersji Linuksa 2.6)
Plik ten wyświetla różne statystyki pamięci wirtualnej.
/proc/zoneinfo (od wersji Linuksa 2.6.13)
Plik zawiera informacje o strefach pamięci. Może być przydatny
podczas analizowania zachowania pamięci wirtualnej.
ZOBACZ TAKŻE
cat(1), find(1), free(1), mount(1), ps(1), tr(1), uptime(1), chroot(2),
mmap(2), readlink(2), syslog(2), slabinfo(5), hier(7), arp(8),
dmesg(8), hdparm(8), ifconfig(8), init(8), lsmod(8), lspci(8), net-
stat(8), procinfo(8), route(8)
/usr/src/linux/Documentation/filesystems/proc.txt
UWAGI
Trzeba zauważyć, że wiele łańcuchów znakowych (np. środowisko czy linia
poleceń) występuje w postaci wewnętrznej, z polami zakończonymi bajtami
NUL ("�"), więc jeśli do ich czytania użyje się od -c lub tr "�00"
"
", to mogą być bardziej czytelne. Alternatywnie, echo `cat `
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.
PODZIĘKOWANIA
Material dotyczący /proc/sys/fs i /proc/sys/kernel jest ściśle oparty
na plikach dokumentacji źródeł jądra napisanych przez Rika van Riela.