PS(1) Podręcznik programisty linuxowego PS(1)
NAZWA
ps - zgłoś status procesu
SKŁADNIA
ps [-] [lujsvmaxScewhrnu] [txx] [O[+|-]k1[[+|-]k2...]]
[pids]
Są także trzy długie opcje:
--sortX[+|-]key[,[+|-]key[,...]]
--help
--version
W drodze jest więcej długich opcji...
OPIS
ps daje opis bieżących procesów. Jeśli potrzebujesz pow
tarzającego się statusu, użyj top(1). Ta strona
podręcznika man opisuje wersję ps opartą o /proc, a przy
najmniej próbuje tego dokonać.
OPCJE LINII KOMEND
Argumenty linii komend mogą być opcjonalnie poprzedzone
`-', lecz nie ma ku temu potrzeby. Istnieją także `długie
opcje' w stylu GNU; zobacz niżej.
l długi format
u format użytkownika: podaje nazwę użytkownika i czas
startu
j format prac: pgid sid
s format sygnału
v format vm
m wyświetla informację o pamięci (połącz z flagą p aby
uzyskać ilość stron).
f "forest" (las) - format drzewiasty
a pokaż także procesy innych użytkowników
x pokaż procesy bez kontrolującego terminala
S dodaj czas cpu potomka i błędy stron
c nazwa komendy z task_struct
e pokaż środowisko za linią komend i ` + '
w szerokie wyjście: nie skracaj linii komend aby
mieściły się w jednej linii. Można podawać więcej
niż jedno w.
h bez nagłówka
r tylko pracujące procesy
n wyjście numeryczne dla USER i WCHAN.
txx tylko procesy z kontrolującym tty XX; dla xx możesz
użyć zarówno nazwy urządzenia z "/dev", jak i tej
nazwy z dopuszczalnym odłupaniem tty lub cu. Jest to
odwrócona heurystyka, której ps używa do wydrukowania
skróconych nazw tty w polu TT, np. ps -t1.
Cohesive Systems 27 Jul 1994 1
PS(1) Podręcznik programisty linuxowego PS(1)
O[+|-]k1[,[+|-]k2[,...]]
Ułóż listing procesów według wielopoziomowego sor
towania podanego przez sekwencję kluczy short z SHORT
KEYS, k1, k2, ... Domyślna specyfikacja istnieje dla
każdego z różnych formatów ps. Są one przeciążane
przez uzytkwonika wskazującego kolejność. Znak `+'
jest opcjonalny. `-' odwraca znaczenie tylko jednego
klucza -- tego, przed którym jest podany. Opcja O,
podobnie jak t i pids musi być ostatnią opcją poje
dynczego argumentu linii komend, lecz specyfikacje
kolejnych argumentów są łączone.
pids Listuj tylko podane procesy; są one oddzielone
przecinkami. Lista musi być podana tuż za ostatnią
opcją w pojedynczym argumencie linii komend, bez
rozdzielających spacji, np. ps -j1,4,5. Listy
podane w kolejnych argumentach są łączone, np. ps -l
1,2 3,4 5 6 wylistuje procesy od 1 do 6 w długim for
macie. Jeśli podano pidy, to są one listowane bez
względu na nic. Jeśli podano tty, to bez względu na
nic są listowane odpowiadające mu procesy. Te dwie
właściwości przeciążają flagi
DŁUGIE OPCJE LINII KOMEND
Opcje te są poprzedzane podwójnym myślnikiem.
--sortX[+|-]key[,[+|-]key[,...]]
Wybierz wieloliterowy klucz z sekcji KLUCZE SORTOWA
NIA. X może być dowolnym znakiem rozdzielającym. Aby
było w stylu GNU, użyj `='. Znak `+' jest tak
naprawdę opcjonalny, ponieważ domyślnym kierunkiem
jest zwiększanie numerycznego lub leksykograficznego
porządku, np: ps -jax --sort=uid,-ppid,+pid
--help
Pobież informacje o użyciu. Może to być bardziej
aktualne niż ta strona podręcznika man.
--version
Wyświetl wersję i źródło tego programu.
KLUCZE SORTOWANIA
Zauważ, że wartości używane w sorotwaniu są wartościami
wewnętrznymi ps i nie sa gotowymi wartościami, które są
używane w którymś z pól wyjściowych. Jeśli ktoś chciałby
zgłosić się do napisania specjalnych funkcji porównywania
dla gotowych wartości, ... ;-)
KRÓTKA DŁUGA OPIS
c cmd Sama nazwa programu wykonywalnego
C cmdline Pełna linia komend
f flags Flagi jak w polu F długiego
listingu
Cohesive Systems 27 Jul 1994 2
PS(1) Podręcznik programisty linuxowego PS(1)
g pgrp Id grupy procesu
G tpgid Id grupy procesu kontrolującego
tty
j cutime Kumulujący czas użytkownika
J cstime Kumulujący czas systemu
k utime Czas użytkownika
K stime Czas systemu
m min_flt Ilość mniejszych błędów stron
M maj_flt Ilość większych błędów stron
n cmin_flt Kumulujące mniejsze błędy stron
N cmaj_flt Kumulujące większe błędy stron
o session ID sesji
p pid ID procesu
P ppid ID procesu rodzicielskiego
r rss Wartość `resident set size'
R resident Wartość `resident pages'
s size Rozmiar pamięci w kilobajtach
S share Wielkość stron dzielonych
t tty Minorowy numer urządzenia tty
T start_time Czas uruchomienia procesu
U uid Id użytkownika
u user Nazwa użytkownika
v vsize Całkowity rozmiar VM (pamięci) w
bytes
y priority Priorytet w shedulerze jądra
OPISY PÓL
PRI Jest to pole licznika struktury zadania (task). Jest
to czas w HZ przypuszczalnego timeslice procesu.
NI Standardowa unixowa wartość nice; wartości dodatnie
oznaczają mniej czasu cpu.
SIZE Rozmiar wirtualnego obrazu; rozmiar tek
stu+danych+stosu.
RSS Resident set size; kilobajty programu w pamięci.
WCHAN
Nazwa funkcji jądra, gdzie proces śpi, od której
odjęto przedrostek `sys_' Jeśli /etc/psdatabase nie
istnieje, jest to tylko wartość szesnastkowa.
STAT Informacja o statusie procesu. Pierwsze pole to R dla
`runnable' (zdolny do pracy), S dla śpiącego (sleep
ing), D dla nieprzerywalnego snu (uninterruptible
sleep), T dla zastopowanego, trace'owanego, lub Z dla
procesu zombie. Kolejne pole zawiera W w wypadku gdy
proces nie ma stron rezydentnych (resident pages).
Trzecie pole przyjmuje wartość N w wypadku gdy proces
ma dodatnią wartość nice (poleNI ).
TT Kontrolujący tty.
Cohesive Systems 27 Jul 1994 3
PS(1) Podręcznik programisty linuxowego PS(1)
PAGEIN
Ilość większych błędów stron (błędów stron, które
powodują odczytywanie stron z dysku, właczając strony
odczytywane z buforującego cache).
TRS Rozmiar rezydenta tekstu (Text resident size).
SWAP Kilobajty (lub gdy podano opcję -p strony) na
urządzeniu swap.
SHARE
Pamięć dzielona.
ODNAWIANIE
Ta, oparta o proc wersja ps działa dzięki odczytywaniu
plików z systemu plików proc, zamontowanego w /proc. Ten
ps nie potrzebuje być suidowanym do kmem lub mieć konkret
nych przywilejów by działać. Nie dawaj więc tej wersji ps
żadnych specjalnych uprawnień.
Aby dostać znaczące dane z pola WCHAN, będziesz musiał
odnowić bazę /etc/psdatabase przez uruchomienie /etc/psup
date. Powinno to być robione za każdym razem gdy kompilu
jesz jądro. Powinieneś też raz uruchomić `ps' jako root, a
potem każdorazowo gdy zmienią się urządzenia tty w "/dev".
Od wydania procps-1.00, ps/top odczytują gdy to możliwe
System.map. Ścieżka przeszukiwania do jądrowego rozdziału
adres-symbol to:
$PS_SYSTEM_MAP
/boot/System.map-`uname -r`
/boot/System.map
/lib/modules/`uname -r`/System.map
/etc/psdatabase
/boot/psdatabase-`uname -r`
/boot/psdatabase,
/lib/modules/`uname -r`/psdatabase
UWAGI
Członek used_math struktury task_struct nie jest pokazy
wany, gdyż crt0.s sprawdza czy jest obecna matematyka.
Powoduje to ustawieie dla wszystkich procesów flagi
`math', więc jest bezwartościowe.
Programy wyswapowane na dysk będą pokazywane bez argu
mentów linii komend, chyba że w nawiasach zostanie podana
opcja c.
%CPU pokazuje procent czasu procesora. Nie wyjdzie tam
100%, chyba że masz szczęście. Jest to użyty czas
podzielony przez czas, przez który proces już działa.
Pola SIZE i RSS nie liczą tabel stron i struktura
Cohesive Systems 27 Jul 1994 4
PS(1) Podręcznik programisty linuxowego PS(1)
struktury task_struct proc; jest to przynajmniej 12K
pamięci, która zawsze jest rezydentna. SIZE jest wirtual
nym rozmiarem procesu (kod+dane+stos).
Aby dokonać mapowania numeru urządzenia na nazwę, ps używa
pliku zwanego "/etc/psdevtab" (odnawianego za każdym razem
gdy "/dev" staje się nowsze i gdy prawa pozwalają na
odnowienie). Jeśli prawa nie pozwalają na odnowienie,
kazde wywołanie ps wymaga stat(2) na każdym pliku w kata
logu "/dev". Jeśli "/dev" zmienia się na twoim systemie
bardzo często, powienieneś równie często uruchamiać spod
roota ps. ;-)
AUTOR
ps początkowo był napisany przez Branko Lankestera
(lankeste@fwi.uva.nl), Michael K. Johnson (johnsonm@sun
site.unc.edu) znacząco go zmodyfikował, aby używał systemu
plików proc. Michael Shields (mjshield@nyx.cs.du.edu)
dodał właściwość pid-listy. Charles Blake(cblake@bbn.com)
dodał wielopoziomowe sotrowanie, bibliotekę w stylu
dirent, bazę mapowań nazwy na numer dla urządzeń, szukanie
bezpośrednio w System.map i sporo usprawnień estetycznych
i oczyszczeń w kodzie źródłowym. Jest on obecnym opiekunem
tego pakietu.
Cohesive Systems 27 Jul 1994 5