/proc/pid/stat - informacje o stanie
- /proc/pid/stat
- Informacje o stanie procesu. Korzysta z tego ps(1). Są one
zdefiniowane w pliku źródeł jądra
fs/proc/array.c.
- Pola te, w kolejności, razem z ich poprawnymi określeniami
formatu scanf(3), są wypisane poniżej. To, czy pola
te wyświetlają prawidłowe wartości,
zależy od sprawdzenia trybu dostępu ptrace
PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT (zob.
ptrace(2)). Jeśli sprawdzenie to odmówi
dostępu, to wartość pola będzie
wyświetlona jako 0. Pola, których to dotyczy, oznaczono
[PT].
- (1) pid %d
-
Identyfikator procesu (PID).
- (2) comm %s
- Nazwa pliku wykonywalnego w nawiasach. Łańcuchy
dłuższe niż TASK_COMM_LEN (16) znaków
(wliczając końcowy bajt null) są po cichu przycinane.
Widać, czy plik uległ wymianie.
- (3) state %c
- Jeden z poniższych znaków, wskazujących na status
procesu:
- R
- Działający (Running)
- S
- Śpiący (Sleeping) w przerywalnym oczekiwaniu
- D
- Śpiący w nieprzerywalnym oczekiwaniu dyskowym
- Z
- Zombie
- T
- Zatrzymany sygnałem lub (przed Linuksem 2.6.33) zatrzymany
ślad (trace stopped)
- t
- Zatrzymany śledzeniem (tracing stop) - Linux 2.6.33 i
nowszy
- W
- Stronicowanie (tylko przed Linuksem 2.6.0)
- X
- Martwy (od Linuksa 2.6.0)
- x
- Martwy (między Linuksem 2.6.33 a 3.13)
- K
- Wakekill - oczekiwanie; wybudzenie przy śmiertelnym sygnale
(między Linuksem 2.6.33 a 3.13)
- W
- Budzący się (waking; między Linuksem 2.6.33 a
3.13)
- P
- Zaparkowany (między Linuksem 3.9 a 3.13)
- I
- Bezczynny (idle; od Linuksa 4.14)
- (4) ppid %d
- PID procesu macierzystego tego procesu.
- (5) pgrp %d
- Identyfikator grupy procesów danego procesu.
- (6) session %d
- Identyfikator sesji procesu.
- (7) tty_nr %d
- Kontroluje terminal procesu (poboczny numer urządzenia jest
przechowywany w kombinacji bitów 31 do 20 i 7 do 0, natomiast
główny numer urządzenia jest w bitach 15 do 8).
- (8) tpgid %d
- Identyfikator grupy procesów pierwszoplanowych
kontrolującego terminala procesu.
- (9) flags %u
- Słowo flag jądra dla danego procesu. Znaczenie
poszczególnych bitów określają definicje PF_*
w pliku źródeł jądra Linux
include/linux/sched.h. Szczegóły zależą
od wersji jądra.
- Format tego pola przed Linuksem 2.6 miał postać %lu.
- (10) minflt %lu
- Liczba pomniejszych chybień, które popełnił
proces, a które nie wymagały załadowania strony
pamięci z dysku.
- (11) cminflt %lu
- Liczba pomniejszych chybień procesów potomnych, na
które się oczekuje.
- (12) majflt %lu
- Liczba głównych chybień, które
popełnił proces, a które wymagały
załadowania strony pamięci z dysku.
- (13) cmajflt %lu
- Liczba głównych chybień procesów potomnych, na
które się oczekuje.
- (14) utime %lu
- Czas jaki został przydzielony procesowi w trybie
użytkownika, mierzony w taktach zegara (podzielonych przez
sysconf(_SC_CLK_TCK)). Obejmuje to czas gościa,
guest_time (czas spędzony w czasie działania
wirtualnego CPU, patrz niżej), tak więc aplikacje,
które nie wiedzą o polu czasu gościa nie tracą
tego czasu ze swych obliczeń.
- (15) stime %lu
- Czas, jaki został przydzielony procesowi w trybie jądra,
mierzony w taktach zegara (podzielonych przez
sysconf(_SC_CLK_TCK)).
- (16) cutime %ld
- Czas, jaki został przydzielony procesom potomnym tego procesu, na
które się oczekuje, w trybie użytkownika, mierzony w
taktach zegara (podzielonych przez sysconf(_SC_CLK_TCK)), patrz
także times(2)). Obejmuje to czas gościa,
cguest_time (czas spędzony działając na
procesorze wirtualnym, patrz niżej).
- (17) cstime %ld
- Czas, jaki został przydzielony procesom potomnym tego procesu, na
które się oczekuje, w trybie jądra, mierzony w
taktach zegara (podzielonych przez sysconf(_SC_CLK_TCK).
- (18) priority %ld
- (Wyjaśnienie dla Linuksa 2.6) W przypadku procesów
działających z zasadami planisty czasu rzeczywistego
(policy poniżej; patrz sched_setscheduler(2)), jest
to liczba przeciwna w stosunku do priorytetu planisty minus jeden, tzn.
jest to zakres -2 do -100 odpowiadający priorytetom czasu
rzeczywistego od 1 do 99. W przypadku procesów nie
działających według tych zasad, jest to surowa
wartość nice (setpriority(2) zgodna z podaną
przez jądro. Jądro przechowuje wartości nice jako
liczby w zakresie od 0 (wysoki) do 39 (niski), co odpowiada widocznemu dla
użytkownika zakresowi nice od -20 do 19.
- Przed Linuksem 2.6 była to wartość skalowana w
oparciu o wagę jaką planista przypisał do danego
procesu.
- (19) nice %ld
- Wartość „nice” (patrz setpriority(2))
zawierająca się w zakresie od 19 (niski priorytet) do -20
(wysoki priorytet).
- (20) num_threads %ld
- Liczba wątków procesu (od Linuksa 2.6). Przed Linuksem 2.6
to pole miało przydzieloną na sztywno wartość
0, jako wypełniacz do usuniętego wcześniej pola.
- (21) itrealvalue %ld
- Czas w jiffies poprzedzający wysłanie przez czasomierz do
procesu następnego sygnału SIGALRM. Od Linuksa
2.6.17, to pole nie jest dłużej utrzymywane i ma
ustawioną na sztywno wartość 0.
- (22) starttime %llu
- Czas w jakim proces uruchomił się po rozruchu systemu. Przed
Linuksem 2.6 wartość ta była wyrażona w tzw.
„jiffies”. Od Linuksa 2.6 wartość jest
wyrażana w taktach zegara (podzielonych przez
sysconf(_SC_CLK_TCK)).
- Format tego pola przed Linuksem 2.6 miał postać %lu.
- (23) vsize %lu
- Rozmiar pamięci wirtualnej w bajtach.
- (24) rss %ld
- Resident Set Size: liczba stron, które proces ma w rzeczywistej
pamięci. Są to po prostu strony, które
obejmują przestrzeń tekstu, danych lub stosu. Nie obejmuje
to stron, które nie były ładowane na
żądanie lub które uległy wymianie.
Wartość ta jest niedokładna, zob.
/proc/pid/statm poniżej.
- (25) rsslim %lu
- Aktualne miękkie ograniczenie rss procesu w bajtach; patrz opis
RLIMIT_RSS w getrlimit(2).
- (26) startcode %lu [PT]
- Adres, pod którym zaczyna się kod programu.
- (27) endcode %lu [PT]
- Adres, pod którym kończy się kod programu.
- (28) startstack %lu [PT]
- Adres początku (tzn. spód) stosu.
- (29) kstkesp %lu [PT]
- Bieżąca wartość ESP (wskaźnika stosu),
określona na podstawie strony stosu jądra dla danego
procesu.
- (30) kstkeip %lu [PT]
- Aktualny EIP (wskaźnik instrukcji).
- (31) signal %lu
- Maska bitowa oczekujących sygnałów,
wyświetlana jako liczba dziesiętna. Przestarzałe,
ponieważ nie dostarcza informacji o sygnałach czasu
rzeczywistego; prosimy używać /proc/pid/status
zamiast tego pliku.
- (32) blocked %lu
- Maska bitowa zablokowanych sygnałów, wyświetlana jako
liczba dziesiętna. Przestarzałe, ponieważ nie
dostarcza informacji o sygnałach czasu rzeczywistego; prosimy
używać /proc/pid/status zamiast tego
pliku.
- (33) sigignore %lu
- Maska bitowa ignorowanych sygnałów, wyświetlana jako
liczba dziesiętna. Przestarzałe, ponieważ nie
dostarcza informacji o sygnałach czasu rzeczywistego; prosimy
używać /proc/pid/status zamiast tego
pliku.
- (34) sigcatch %lu
- Maska bitowa schwytanych sygnałów, wyświetlana jako
liczba dziesiętna. Przestarzałe, ponieważ nie
dostarcza informacji o sygnałach czasu rzeczywistego; prosimy
używać /proc/pid/status zamiast tego
pliku.
- (35) wchan %lu [PT]
- Jest to „kanał” na którym oczekuje proces.
Jest to adres położenia w jądrze, gdzie proces jest w
uśpieniu. Powiązaną nazwę symboliczną
można znaleźć w /proc/pid/wchan.
- (36) nswap %lu
- Liczba stron, które uległy wymianie (nieutrzymywane).
- (37) cnswap %lu
- Łączna wartość nswap dla
procesów potomnych (nieutrzymywane).
- (38) exit_signal %d (od Linuksa 2.1.22)
- Sygnał wysyłany przez ginący proces do jego procesu
macierzystego.
- (39) processor %d (od Linuksa 2.2.8)
- Numer CPU, na którym proces ostatnio działał.
- (40) rt_priority %u (od Linuksa 2.5.19)
- Priorytet planisty czasu rzeczywistego, liczba w zakresie od 1 do 99 do
procesów przydzielanych według zasad czasu rzeczywistego lub
0 do procesów nie czasu rzeczywistego (patrz
sched_setscheduler(2)).
- (41) policy %u (od Linuksa 2.5.19)
- Polityka przydzielania zadaniom czasu procesora (patrz
sched_setscheduler(2)). Dekodowana używając
stałych SCHED_* w linux/sched.h.
- Format tego pola przed Linuksem 2.6.22 miał postać %lu.
- (42) delayacct_blkio_ticks %llu (od Linuksa
2.6.18)
- Sumaryczna zwłoka bloków wejścia/wyjścia,
mierzona w taktach zegara (centysekundy).
- (43) guest_time %lu (od Linuksa 2.6.24)
- Czas gościa procesu (czas, jaki upłynął
podczas działania na wirtualnym procesorze systemu operacyjnego
gościa), mierzony w taktach zegara (podzielony przez
sysconf(_SC_CLK_TCK)
- (44) cguest_time %ld (od Linuksa 2.6.24)
- Czas gościa potomków procesu, mierzony w taktach zegara
(podzielony przez sysconf(_SC_CLK_TCK)).
- (45) start_data %lu (od Linuksa 3.3)
[PT]
- Adres powyżej którego umieszczane są zainicjowane i
niezainicjowane (BSS) dane programu.
- (46) end_data %lu (od Linuksa 3.3)
[PT]
- Adres poniżej którego umieszczane są zainicjowane i
niezainicjowane (BSS) dane programu.
- (47) start_brk %lu (od Linuksa 3.3)
[PT]
- Adres, powyżej którego można
rozciągnąć kopiec (ang. heap) za
pomocą brk(2).
- (48) arg_start %lu (od Linuksa 3.5)
[PT]
- Adres powyżej którego umieszczane są argumenty
wiersza polecenia programu (argv).
- (49) arg_end %lu (od Linuksa 3.5) [PT]
- Adres poniżej którego umieszczane są argumenty
wiersza polecenia programu (argv).
- (50) env_start %lu (od Linuksa 3.5)
[PT]
- Adres powyżej którego umieszczane jest środowisko
programu.
- (51) env_end %lu (od Linuksa 3.5) [PT]
- Adres poniżej którego umieszczane jest środowisko
programu.
- (52) exit_code %d (od Linuksa 3.5)
[PT]
- Kod zakończenia wątku w postaci przekazywanej przez
waitpid(2).
TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Przemek
Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org>
i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną
dokumentacją. Bliższe informacje o warunkach licencji
można uzyskać zapoznając się z
GNU General
Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika
prosimy zgłaszać na adres listy dyskusyjnej
manpages-pl-list@lists.sourceforge.net.