ps(1)


NÉV

ps - a processzek állapotát adja meg

ÁTTEKINTÉS

ps [-] [lujsvmaxScewhrnu] [txx] \ [O[fB+|fB-]k1[[fB+|fB-]fIk2...]] \ [pids]

van még továbbá három hosszú opció:

--sortX [ + | - ] key [,[ + | - ] key [, ... ]]

--help 

--version 

A többi hosszú opció előkészületben...

LEÍRÁS

A ps program az aktuális processzek pillanatfelvételét adja. Amennyiben az állapotok ismétlődő frissítésére van szükség, a top használata javasolt.

Ez a kézikönyvlap a ps program /proc -alapú változatát dokumentálja, vagy legalábbis megpróbálja megtenni.

OPCIÓK

A ps jelen változatának parancssori opciói a ps , BSD változata alapján készültek, nem pedig a System V változat szerint.

A parancssori argumentumoknak nem ajánlott `-' karakterrel kezdődniük, mivel a jövőben, ez a Unix98-standard parancssori argumentumok jelölésére lesz fenntartva, ezért `-' nélkül kell az aktuális ``kiterjesztett BSD'' stílusú argumentumokat jelölni.

Pillanatnyilag a ps program figyelmeztetést ad, ha egy `-'-t használunk rövid opció jelölésére, de működni fog. Ha olyan shell szkriptjeid vannak, melyek BSD-stílusú argumentumokat használnak a ps hívásához, akkor a figyelmeztetések nyomán célszerű ezeket lecserélni, különben a közeljövőben ezek a szkriptek használhatatlanná válhatnak. Amennyiben ki akarod kapcsolni a figyelmeztetéseket, be kell állítani a I_WANT_A_BROKEN_PS környezeti változót.

Van néhány GNU stílusú ``hosszú opció'' is; lásd lentebb.

l  
hosszú (long) formátum

u  
felhasználói (user) formátum: megadja a felhasználó nevét és a kezdés idejét

j  
`jobs' formátum: megadja `pgid' és `sid' értékét is

`signal' formátum

v  
`vm' formátum: a virtuális memória használatáról is tájékoztat

m  
a memóriáról is ad információt; a p -vel együtt a használt lapok (page) számát is megadja.

f  
``erdő'' ("forest") a parancssor családfáját adja meg

a  
a többi felhasználó processzeit is kijelzi

x  
a terminálhoz nem csatlakozó processzeket is kijelzi

S  
a gyermek (child) CPU-idejét és a ``page faults''-okat is megadja

c  
a parancsnevet a `task_struct'-ból veszi

e  
a parancssor után a környezetet is megadja

w  
széles kimenet: nem csonkolja a parancssorokat, hogy beleférjenek egy sorba. Pontosabban szólva: minden `w' egy lehetséges plusz sort ad a kijelzéshez, melyet nem feltétlen használ ki a a `ps'. Legfeljebb 100 db w használható.

h  
nem ír ki fejlécet (header)

r  
csak a futó processzeket listázza

n  
numerikus kimenet a USER   és   WCHAN mezőknek

t xx
csak a tty xx eszközt ellenőrző processzeket listázza. xx lehet a "/dev" alatti eszközfájl neve, vagy a név a tty " illetve " cu nélkül. Ez a jelölés fordítottja annak, amit a ps használ a TT mező kijelzésekor. Például ps -t1  a "/dev/tty1"-hez tartozó processzeket listázza. Ezen opció használata esetén minden, az adott eszközhöz tartozó processz listázódik, `a' és `x' opcióktól függetlenül.

O
[ + | - ] k1 [,[ + | - ] k2 [, ... ]] A processzek listáját a k1, k2, ... rövid kulcsok alapján vett többszintű rendezés szerint készíti. (Lásd RENDEZÉSI KULCSOK.) A ps különböző formáihoz különböző rendezési módok tartoznak, melyek a felhasználó által felülbírálhatók. A `+' jel opcionális, csupán az alapértelmezett irányt definiálja újra egy kulcson, míg a `-' megfordítja a sorrendet az azt követő kulcsra. Akárcsak t vagy pids, ez az opció is utolsó kell legyen az egy-parancsos argumentumban, de az egymást követő argumentumok specifikációi összefűzésre kerülnek.

pids
csak a megadott processzeket listázza. A processzazonosítókat vesszővel tagolt lista formájában kell megadni, mely az utolsó opciót közvetlenül követi. Például:  ps j1,4,5  . Egymás utáni argumentumokban megadott listák összefűzésre kerülnek, pl. ps l 1,2 3,4 5 6 kilistázza az 1-6 processzeket hosszú formában.

Ezen opció használata esetén a megfelelő PID értékű processzek mindenképp listázásra kerülnek, függetlenül az `x' és `a' opcióktól.

HOSSZÚ OPCIÓK

Ezen opciók előtt két `-'-jel taláható.

--sortX
[ + | - ] key [,[ + | - ] key [, ... ]] Több-betűs kulcs alapján végez rendezést. (A kulcsokat lásd a RENDEZÉSI KULCSOK fejezetben.) X helyére tetszőleges elválasztó karakter írható, a GNU szokások szerint ez lehet a `='-jel. A `+'-jel opcionális, mert nővekvő szám- vagy ABC szerinti rendezést jelent. Pl.: ps -jax --sort=uid,-ppid,+pid

--help 
Segítő üzenetet ad, amely összegzi a használatot és a támogatott rövid kulcsok listáját adja. Ez a lista esetleg frissebb lehet, mint ez a kézikönyv-lap.

--version 
Kijelzi a program verzóját és forrását.

RENDEZÉSI KULCSOK

Megjegyezzük, hogy a rendezéshez használt értékek a ps által használt belső értékek és nem azok az értékek, melyeket a kimeneti formátummezők némelyikében látunk.

SHORT LONG DESCRIPTION

c cmd a végrehajtható program egyszerű neve

C cmdline teljes parancssor

f flags a zászlók (flags), ahogy a hosszú formájú F mezőkben

g pgrp processz csoportazonosító (group ID)

G tpgid a tty-t ellenőrző processz csoportazonosítója

j cutime felhalmozódott felhasználói idő

J cstime felhalmozódott rendszeridő

k utime felhasználói idő

K stime rendszeridő

m min_flt a kis `page faults'-ok száma

M maj_flt a nagy `page faults'-ok száma

n cmin_flt a felhalmozódott kis `page faults'-ok száma

N cmaj_flt a felhalmozódott nagy `page faults'-ok száma

o session session ID

p pid processzazonosító (PID)

P ppid a szülő processz azonosítója

r rss a rezidens halmaz mérete

R resident a rezidens lapok száma

s size memóriaméret kilobájtokban

S share a megosztott lapok (shared pages) mennyisége

t tty a tty kisebb eszközszáma (minor device number)

T start_time a processz indulásának ideje

U uid a felhasználói azonosító szám

u user a felhasználó neve

v vsize a teljes virtuális memóriahasználat bájtokban

y priority a kernel ütemezésének prioritása

MEZŐLEÍRÁSOK

PRI  
Ez a `task' struktúra számláló mezője (counter field). Ez a processz által elérhető időszelet HZ egységekben.

NI  
A hagyományos Unix `nice' érték; a pozitív értékek kisebb CPU időt jelentenek.

SIZE  
Virtuális (image) méret; a szöveg+adat+verem összmérete.

RSS  
Rezidens halmazméret; a memóriafoglalás kilobájtokban.

WCHAN  
Azon kernelfüggvény neve, ahol a processz alszik, a ` sys_ ' leválasztásával. Ha /etc/psdatabase nem létezik, ez csak egy hexadecimális szám.

STAT  
A processz állapotát adja meg. Az első mező: R futó (runnable), S alvó (sleeping), D nem megszakíthatóan alvó (uninterruptible sleep), T megállított vagy nyomkövetett (stopped vagy traced) Z zombi (zombie) processzekre. A második mező egy W -t tartalmaz, ha a processznek nincs rezidens lapja. A harmadik mező N ha a processznek pozitív `nice' értéke van. ( NI mező).

TT  
Az ellenőrzött tty jele.

PAGEIN  
A nagy `page fault'-ok száma. (Azaz azon page fault-oké, melyek azt eredményezték, hogy egy lapot lemezről vagy a cache pufferből kellett beolvasni.)

TRS  
A rezidens méret.

SWAP  
A swap eszközből foglalt méret kilobájtokban, illetve lapokban, ha a -p is adott.

SHARE  
Osztott (shared) memóriahasználat.

FRISSÍTÉS

A ps ezen proc -alapú változata a proc fájlrendszer fájljait olvassa munka közben, melyek a /proc -ban találhatók. Ezért ezen ps -változatnak nem szükséges, hogy a kmem `suid'-os legyen, vagy speciális előjogokkal fusson.

Nem célszerű ezen programnak semmilyen különleges előjogot adni. 

Szükség lehet a /etc/psdatabase frissítésére a /usr/sbin/psupdate futtatásával, hogy a WCHAN mező értelmes információkat tartalmazzon. Ezt minden új kernelfordításkor célszerű megtenni. Szintén érdemes lefuttatni a ps -t egyszer root-ként, majd ezt megismételni, ha a `/dev'-ben egy tty eszköz megváltozik.

Akárcsak a procps-1.00 esetén, a `ps' és a `top' közvetlenül olvassa a `System.map'-ot ha lehetséges. A kernel cím-szimbólum feloldás lehetőségei (address-to-symbol resolution):

            $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

MEGJEGYZÉSEK

A task_struct struktúra used_math tagja nem kerül kijelzésre, mivel crt0.s ellenőrzi, hogy jelen van-e matematikai koprocesszor. Ez azt jelenti, hogy a `math flag' minden processzre be lesz állítva, ami pedig haszontalan.

A lemezre swap-pelt programok parancssori argumentumok nélkül jelennek meg, és hacsak a c opció nem adott, zárójelbe kerülnek.

%CPU A "CPU idő/valós idő" arányt mutatja százalékban. Ez nem fogja elérni a 100%-ot, hacsak nincs szerencsénk. Ez a felhasznált idő és a program futásidejének hányadosa.

A SIZE és RSS mezők nem számolják a laptáblákat (page tables) és a task_struct -ját a processznek; ez pedig legalább 12 kilobájt memóriát jelent, amely mindenképp rezidens. SIZE a processz virtuális mérete (code+data+stack).

Az eszközszámokat a nevekre való leképezéshez a ps egy /etc/psdevtab nevő fájlt tart karban, ami a "/dev" minden megújításakor frissítődik ha az engedélyek ezt megengedik. Amennyiben az engedélyek nem engedik a frissítést, a ps minden hívása egy stat(2) hívást igényel a "/dev" minden fájljára. Amennyiben a "/dev" tartalma gyakran változik a rendszeren, a ps -t célszerű gyakran lefuttatni root-ként. Esetleg egy $HOME alatti fájl is hozzáadható a programhoz, ha nagy lesz a közvélemény nyomása.

SZERZŐ

A ps -t eredetileg Branko Lankester <lankeste@fwi.uva.nl> írta. Michael K. Johnson <johnsonm@redhat.com> jelentős részben újraírta, hogy a `proc' fájlrendszert használja. Michael Shields <mjshield@nyx.cs.du.edu> a PID-listák lehetőségét adta a programhoz. Charles Blake <cblake@bbn.com> a többszintű rendezést, a `dirent-style library', az eszköznév-szám térkép adatbázisát, a közelítő bináris keresést a System.map-ban és sok kódolási illetve dokumentálási javítást adott a programhoz. David Mossberger-Tang az általános BSD támogatást írta a psupdate-hez. Michael K. Johnson <johnsonm@redhat.com> az aktuális karbantartó.

Hibajelentéseket a <procps-bugs@redhat.com> címre kérjük küldeni.

MAGYAR FORDÍTÁS

Horváth András <horvatha@rs1.szif.hu>

A fordító megjegyzése: Az eredeti dokumentum sok nehezen érthető mondatot, nem definiált rövidítést, szleng kifejezést tartalmazott. Sok esetben bizonytalan vagyok a fordításban. Kérem, óvatosan olvassa mindenki ezt a fordítást, és ha egyes részeket valaki tud pontosítani, tudassa velem.