proc_pid_stat(5) File Formats Manual proc_pid_stat(5) NAZWA /proc/pid/stat - informacje o stanie OPIS /proc/pid/stat Informacje o stanie procesu. Korzysta z tego ps(1). Sa one zdefiniowane w pliku zrodel jadra fs/proc/array.c. Pola te, w kolejnosci, razem z ich poprawnymi okresleniami formatu scanf(3), sa wypisane ponizej. To, czy pola te wyswietlaja prawidlowe wartosci, zalezy od sprawdzenia trybu dostepu ptrace PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT (zob. ptrace(2)). Jesli sprawdzenie to odmowi dostepu, to wartosc pola bedzie wyswietlona jako 0. Pola, ktorych to dotyczy, oznaczono [PT]. (1) pid %d Identyfikator procesu (PID). (2) comm %s Nazwa pliku wykonywalnego w nawiasach. Lancuchy dluzsze niz TASK_COMM_LEN (16) znakow (wliczajac koncowy bajt null) sa po cichu przycinane. Widac, czy plik ulegl wymianie. (3) state %c Jeden z ponizszych znakow, wskazujacych na status procesu: R Dzialajacy (Running) S Spiacy (Sleeping) w przerywalnym oczekiwaniu D Spiacy w nieprzerywalnym oczekiwaniu dyskowym Z Zombie T Zatrzymany sygnalem lub (przed Linuksem 2.6.33) zatrzymany slad (trace stopped) t Zatrzymany sledzeniem (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 (miedzy Linuksem 2.6.33 a 3.13) K Wakekill - oczekiwanie; wybudzenie przy smiertelnym sygnale (miedzy Linuksem 2.6.33 a 3.13) W Budzacy sie (waking; miedzy Linuksem 2.6.33 a 3.13) P Zaparkowany (miedzy 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 procesow danego procesu. (6) session %d Identyfikator sesji procesu. (7) tty_nr %d Kontroluje terminal procesu (poboczny numer urzadzenia jest przechowywany w kombinacji bitow 31 do 20 i 7 do 0, natomiast glowny numer urzadzenia jest w bitach 15 do 8). (8) tpgid %d Identyfikator grupy procesow pierwszoplanowych kontrolujacego terminala procesu. (9) flags %u Slowo flag jadra dla danego procesu. Znaczenie poszczegolnych bitow okreslaja definicje PF_* w pliku zrodel jadra Linux include/linux/sched.h. Szczegoly zaleza od wersji jadra. Format tego pola przed Linuksem 2.6 mial postac %lu. (10) minflt %lu Liczba pomniejszych chybien, ktore popelnil proces, a ktore nie wymagaly zaladowania strony pamieci z dysku. (11) cminflt %lu Liczba pomniejszych chybien procesow potomnych, na ktore sie oczekuje. (12) majflt %lu Liczba glownych chybien, ktore popelnil proces, a ktore wymagaly zaladowania strony pamieci z dysku. (13) cmajflt %lu Liczba glownych chybien procesow potomnych, na ktore sie oczekuje. (14) utime %lu Czas jaki zostal przydzielony procesowi w trybie uzytkownika, mierzony w taktach zegara (podzielonych przez sysconf(_SC_CLK_TCK)). Obejmuje to czas goscia, guest_time (czas spedzony w czasie dzialania wirtualnego CPU, patrz nizej), tak wiec aplikacje, ktore nie wiedza o polu czasu goscia nie traca tego czasu ze swych obliczen. (15) stime %lu Czas, jaki zostal przydzielony procesowi w trybie jadra, mierzony w taktach zegara (podzielonych przez sysconf(_SC_CLK_TCK)). (16) cutime %ld Czas, jaki zostal przydzielony procesom potomnym tego procesu, na ktore sie oczekuje, w trybie uzytkownika, mierzony w taktach zegara (podzielonych przez sysconf(_SC_CLK_TCK)), patrz takze times(2)). Obejmuje to czas goscia, cguest_time (czas spedzony dzialajac na procesorze wirtualnym, patrz nizej). (17) cstime %ld Czas, jaki zostal przydzielony procesom potomnym tego procesu, na ktore sie oczekuje, w trybie jadra, mierzony w taktach zegara (podzielonych przez sysconf(_SC_CLK_TCK). (18) priority %ld (Wyjasnienie dla Linuksa 2.6) W przypadku procesow dzialajacych z zasadami planisty czasu rzeczywistego (policy ponizej; patrz sched_setscheduler(2)), jest to liczba przeciwna w stosunku do priorytetu planisty minus jeden, tzn. jest to zakres -2 do -100 odpowiadajacy priorytetom czasu rzeczywistego od 1 do 99. W przypadku procesow nie dzialajacych wedlug tych zasad, jest to surowa wartosc nice (setpriority(2) zgodna z podana przez jadro. Jadro przechowuje wartosci nice jako liczby w zakresie od 0 (wysoki) do 39 (niski), co odpowiada widocznemu dla uzytkownika zakresowi nice od -20 do 19. Przed Linuksem 2.6 byla to wartosc skalowana w oparciu o wage jaka planista przypisal do danego procesu. (19) nice %ld Wartosc ,,nice" (patrz setpriority(2)) zawierajaca sie w zakresie od 19 (niski priorytet) do -20 (wysoki priorytet). (20) num_threads %ld Liczba watkow procesu (od Linuksa 2.6). Przed Linuksem 2.6 to pole mialo przydzielona na sztywno wartosc 0, jako wypelniacz do usunietego wczesniej pola. (21) itrealvalue %ld Czas w jiffies poprzedzajacy wyslanie przez czasomierz do procesu nastepnego sygnalu SIGALRM. Od Linuksa 2.6.17, to pole nie jest dluzej utrzymywane i ma ustawiona na sztywno wartosc 0. (22) starttime %llu Czas w jakim proces uruchomil sie po rozruchu systemu. Przed Linuksem 2.6 wartosc ta byla wyrazona w tzw. ,,jiffies". Od Linuksa 2.6 wartosc jest wyrazana w taktach zegara (podzielonych przez sysconf(_SC_CLK_TCK)). Format tego pola przed Linuksem 2.6 mial postac %lu. (23) vsize %lu Rozmiar pamieci wirtualnej w bajtach. (24) rss %ld Resident Set Size: liczba stron, ktore proces ma w rzeczywistej pamieci. Sa to po prostu strony, ktore obejmuja przestrzen tekstu, danych lub stosu. Nie obejmuje to stron, ktore nie byly ladowane na zadanie lub ktore ulegly wymianie. Wartosc ta jest niedokladna, zob. /proc/pid/statm ponizej. (25) rsslim %lu Aktualne miekkie ograniczenie rss procesu w bajtach; patrz opis RLIMIT_RSS w getrlimit(2). (26) startcode %lu [PT] Adres, pod ktorym zaczyna sie kod programu. (27) endcode %lu [PT] Adres, pod ktorym konczy sie kod programu. (28) startstack %lu [PT] Adres poczatku (tzn. spod) stosu. (29) kstkesp %lu [PT] Biezaca wartosc ESP (wskaznika stosu), okreslona na podstawie strony stosu jadra dla danego procesu. (30) kstkeip %lu [PT] Aktualny EIP (wskaznik instrukcji). (31) signal %lu Maska bitowa oczekujacych sygnalow, wyswietlana jako liczba dziesietna. Przestarzale, poniewaz nie dostarcza informacji o sygnalach czasu rzeczywistego; prosimy uzywac /proc/pid/status zamiast tego pliku. (32) blocked %lu Maska bitowa zablokowanych sygnalow, wyswietlana jako liczba dziesietna. Przestarzale, poniewaz nie dostarcza informacji o sygnalach czasu rzeczywistego; prosimy uzywac /proc/pid/status zamiast tego pliku. (33) sigignore %lu Maska bitowa ignorowanych sygnalow, wyswietlana jako liczba dziesietna. Przestarzale, poniewaz nie dostarcza informacji o sygnalach czasu rzeczywistego; prosimy uzywac /proc/pid/status zamiast tego pliku. (34) sigcatch %lu Maska bitowa schwytanych sygnalow, wyswietlana jako liczba dziesietna. Przestarzale, poniewaz nie dostarcza informacji o sygnalach czasu rzeczywistego; prosimy uzywac /proc/pid/status zamiast tego pliku. (35) wchan %lu [PT] Jest to ,,kanal" na ktorym oczekuje proces. Jest to adres polozenia w jadrze, gdzie proces jest w uspieniu. Powiazana nazwe symboliczna mozna znalezc w /proc/pid/wchan. (36) nswap %lu Liczba stron, ktore ulegly wymianie (nieutrzymywane). (37) cnswap %lu Laczna wartosc nswap dla procesow potomnych (nieutrzymywane). (38) exit_signal %d (od Linuksa 2.1.22) Sygnal wysylany przez ginacy proces do jego procesu macierzystego. (39) processor %d (od Linuksa 2.2.8) Numer CPU, na ktorym proces ostatnio dzialal. (40) rt_priority %u (od Linuksa 2.5.19) Priorytet planisty czasu rzeczywistego, liczba w zakresie od 1 do 99 do procesow przydzielanych wedlug zasad czasu rzeczywistego lub 0 do procesow 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 uzywajac stalych SCHED_* w linux/sched.h. Format tego pola przed Linuksem 2.6.22 mial postac %lu. (42) delayacct_blkio_ticks %llu (od Linuksa 2.6.18) Sumaryczna zwloka blokow wejscia/wyjscia, mierzona w taktach zegara (centysekundy). (43) guest_time %lu (od Linuksa 2.6.24) Czas goscia procesu (czas, jaki uplynal podczas dzialania na wirtualnym procesorze systemu operacyjnego goscia), mierzony w taktach zegara (podzielony przez sysconf(_SC_CLK_TCK) (44) cguest_time %ld (od Linuksa 2.6.24) Czas goscia potomkow procesu, mierzony w taktach zegara (podzielony przez sysconf(_SC_CLK_TCK)). (45) start_data %lu (od Linuksa 3.3) [PT] Adres powyzej ktorego umieszczane sa zainicjowane i niezainicjowane (BSS) dane programu. (46) end_data %lu (od Linuksa 3.3) [PT] Adres ponizej ktorego umieszczane sa zainicjowane i niezainicjowane (BSS) dane programu. (47) start_brk %lu (od Linuksa 3.3) [PT] Adres, powyzej ktorego mozna rozciagnac kopiec (ang. heap) za pomoca brk(2). (48) arg_start %lu (od Linuksa 3.5) [PT] Adres powyzej ktorego umieszczane sa argumenty wiersza polecenia programu (argv). (49) arg_end %lu (od Linuksa 3.5) [PT] Adres ponizej ktorego umieszczane sa argumenty wiersza polecenia programu (argv). (50) env_start %lu (od Linuksa 3.5) [PT] Adres powyzej ktorego umieszczane jest srodowisko programu. (51) env_end %lu (od Linuksa 3.5) [PT] Adres ponizej ktorego umieszczane jest srodowisko programu. (52) exit_code %d (od Linuksa 3.5) [PT] Kod zakonczenia watku w postaci przekazywanej przez waitpid(2). ZOBACZ TAKZE proc(5), proc_pid_status(5) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Przemek Borys , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.12 2 maja 2024 r. proc_pid_stat(5)