Slackware Logo
Slackware Logo

Lugons

Info

Prevodioci

Greške

 
 LUGONS Slackbook prevod

11.3 ps

Sada znate kako da prelazite sa jednog procesa na drugi ukoliko ste ih pokrenuli iz komadne linije. Isto tako znate da se mnogo procesa sve vreme odvija. Pa kako onda da se izlistaju svi ti programi? Dobro, koristićemo ps(1) komandu. Ova komanda ima tuce opcija, tako da ćemo ovde pokriti samo one najvažnije. Za kompletnu listu, pogledaj te man stranu za ps. Korišćenje man strana je do tančina objašnjeno u Section 2.1.1.

Jednostavno otkucajte ps i imaćete listing svih programa pokrenutih na vašem terminalu. Tu se ubrajaju procesi koji su u prvom planu (tu spada i školjka koju koristite, i naravno, ps lično). Takođe su izlistani pozadinski procesi. Mnogo puta, to će biti veoma kratka lista:

Figure 11-1. Osnovni izlaz ps komande

% ps
   PID TTY          TIME CMD
  7923 ttyp0    00:00:00 bash
  8059 ttyp0    00:00:00 ps

Čak i ako ovde nemamo puno procesa, informacije su veoma uobičajne. Imaće te iste kolone ako koristite ps komandu nebitno koliko je procesa pokrenuto. Pa da vidimo šta sve to znači?

Dakle, PID je ID procesa. Svim pokrenutim procesima je dat jedinstven identifikator koji je u rangu od 1 do 32767. Svakom procesu je dodeljen sledeći slobodan PID. Kada se proces završi (ili se ubije, što ćete videti u sledećem poglavlju), on predaje svoj PID. Kada se dosegne do maksimalnog PID-a vraće se najmanjem slobododnom PID-u.

TTY kolona se odnosi na terminal na kome je pokrenut proces. Pokretanjem ps komande bez ikakvih opcija imaćete listu procesa tekućeg terminala, tako da ću svi procesi dati iste informacije u TTY koloni. Kao što vidite, oba izlistana procesa su pokrenuta na ttyp0. To nam govori da su procesi ili pokrenuti sa udaljene lokacije ili sa X terminala i slično.

TIME kolona određuje koliko se CPU vremena proces izvršava. Ovo vreme ne treba mešati sa vremenom izvršavanja procesa. Zapamtite da je Linux višekorisnički operativni sistem i da se više procesa izvršava u isto vreme, i da ti procesi uzimaju malu porciju procesorskog vremena. Tako da TIME kolona pokazuje vreme koje je nešto menje od aktuelnog vremena izvršavanja procesa. Ako vidite vrednost veću od nekoliko minuta u TIME koloni, znači da nešto nije u redu.

Konačno, CMD kolona govori o kom programu je reč. Ona samo prikazuje osnovni program, i nikakve opcije komande ili slične informacije. Da biste dobili takve informacije, potrebno je da koristite jednu od mnogih opcija ps komande. O njima ćemo prodiskutovati ukratko.

Kompletnu listu svih procesa koji se izvršavaju na vašem sistemu možete dobiti pravilnom upotrebom ovih opcija. To će verovatno dati veliki listing procesa (pedeset pet na mom laptopu u trenutku kada unosim ovu rečenicu), tako da ću skratiti izlaz:

% ps -ax
 PID TTY      STAT   TIME COMMAND
   1 ?        S      0:03 init [3]
   2 ?        SW     0:13 [kflushd]
   3 ?        SW     0:14 [kupdate]
   4 ?        SW     0:00 [kpiod]
   5 ?        SW     0:17 [kswapd]
  11 ?        S      0:00 /sbin/kerneld
  30 ?        SW     0:01 [cardmgr]
  50 ?        S      0:00 /sbin/rpc.portmap
  54 ?        S      0:00 /usr/sbin/syslogd
  57 ?        S      0:00 /usr/sbin/klogd -c 3
  59 ?        S      0:00 /usr/sbin/inetd
  61 ?        S      0:04 /usr/local/sbin/sshd
  63 ?        S      0:00 /usr/sbin/rpc.mountd
  65 ?        S      0:00 /usr/sbin/rpc.nfsd
  67 ?        S      0:00 /usr/sbin/crond -l10
  69 ?        S      0:00 /usr/sbin/atd -b 15 -l 1
  77 ?        S      0:00 /usr/sbin/apmd
  79 ?        S      0:01 gpm -m /dev/mouse -t ps2
  94 ?        S      0:00 /usr/sbin/automount /auto file /etc/auto.misc
 106 tty1     S      0:08 -bash
 108 tty3     SW     0:00 [agetty]
 109 tty4     SW     0:00 [agetty]
 110 tty5     SW     0:00 [agetty]
 111 tty6     SW     0:00 [agetty]
 [izlaz skraćen]

Većina ovih procesa se pokreće u toku butovanja na većini sistema. Ja sam napravio nešto modifikacija na svom sistemu, tako da na vašem sistemu može biti malo drugačije. Ipak većina tih procesa su pokrenuti i na vašem sistemu. Kao što ste zapazili, ako ste ovako koristili ovu komandu, u listingu ćete imati i opcije komandi koje su kreirale procese. U skorašenje vreme, ranjivost kernela u ptrace je nametnula to da se ps komanda malo izmenila tako da ne prikazuje baš sve opcije sa kojim je pokrenuta neka komanda. Te komande su sada prikazane kao uokvirene u srednje zagrade kao u gore navedemom listigu za procese sa PID brojevima od 108 do 110. Isto tako su dodate još neke kolone i još neki ineresantni izlazi.

Prvo, većina ovih izlistanih procesa je pokrenuto na tty “?”. Oni nisu dodeljeni ni jednom određenom terminalu. Ovo uglavnom važi za demone, koji su primer procesa koji nisu zakačeni ni za jedan terminal. Značajniji demoni su sendmail, BIND, apache i NFS. Oni osluškuju zahteve koji dolaze od strane klijenata i i na te zahteve vraćaju ono što su klijenti zahtevali.

Drugo, postoji nova kolona: STAT. Ona pokazuje status procesa. S znači sleeping: taj proces čeka da se nešto dogodi. Z znači zombi proces. Zombi su oni procesi kod kojih je roditelj proces umro, i tako ostavo dete proces iza sebe. To nije dobro. D se odnosi na procese koji su u neprekidnom spavanju (uninterruptible sleep). Često ti procesi odbijaju da umru čak i kada im je predat SIGKILL signal. Više o SIGKILL možete da saznate u sledećem odeljku vezanom za kill komandu. W znači straničenje (paging). Mrtvi procesi su označeni sa X. Procesi označeni sa T su trasirani (traced), ili stopirani. R znači da su procesi pokrenuti.

Ako hoćete još informacija o pokrenutim procesima pokušajte ovako:

% ps -aux
 USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
 root         1  0.0  0.0   344   80 ?        S    Mar02   0:03 init [3]
 root         2  0.0  0.0     0    0 ?        SW   Mar02   0:13 [kflushd]
 root         3  0.0  0.0     0    0 ?        SW   Mar02   0:14 [kupdate]
 root         4  0.0  0.0     0    0 ?        SW   Mar02   0:00 [kpiod]
 root         5  0.0  0.0     0    0 ?        SW   Mar02   0:17 [kswapd]
 root        11  0.0  0.0  1044   44 ?        S    Mar02   0:00 /sbin/kerneld
 root        30  0.0  0.0  1160    0 ?        SW   Mar02   0:01 [cardmgr]
 bin         50  0.0  0.0  1076  120 ?        S    Mar02   0:00 /sbin/rpc.port
 root        54  0.0  0.1  1360  192 ?        S    Mar02   0:00 /usr/sbin/sysl
 root        57  0.0  0.1  1276  152 ?        S    Mar02   0:00 /usr/sbin/klog
 root        59  0.0  0.0  1332   60 ?        S    Mar02   0:00 /usr/sbin/inet
 root        61  0.0  0.2  1540  312 ?        S    Mar02   0:04 /usr/local/sbi
 root        63  0.0  0.0  1796   72 ?        S    Mar02   0:00 /usr/sbin/rpc.
 root        65  0.0  0.0  1812   68 ?        S    Mar02   0:00 /usr/sbin/rpc.
 root        67  0.0  0.2  1172  260 ?        S    Mar02   0:00 /usr/sbin/cron
 root        77  0.0  0.2  1048  316 ?        S    Mar02   0:00 /usr/sbin/apmd
 root        79  0.0  0.1  1100  152 ?        S    Mar02   0:01 gpm
 root        94  0.0  0.2  1396  280 ?        S    Mar02   0:00 /usr/sbin/auto
 chris      106  0.0  0.5  1820  680 tty1     S    Mar02   0:08 -bash
 root       108  0.0  0.0  1048    0 tty3     SW   Mar02   0:00 [agetty]
 root       109  0.0  0.0  1048    0 tty4     SW   Mar02   0:00 [agetty]
 root       110  0.0  0.0  1048    0 tty5     SW   Mar02   0:00 [agetty]
 root       111  0.0  0.0  1048    0 tty6     SW   Mar02   0:00 [agetty]
 [izlaz skraćen]

Ovde imamo gomilu informacija. Prvo, imamo informacije koje se odnose na korisnike koji su pokrenuli procese, koliko sistemskih resurasa proces koristi ( %CPU, %MEM, VSZ i RSS kolone) i kojeg datuma je proces startovan. Očigledno je da ima puno informacija koje bi bile od koristi sistem adminstratoru. Postoji još nešto: informacije sada prelaze preko ivica ekrana i tako se ne vide u potpunosti. Opcija -w će forsirati ps komandu da prelama (wrap) duge linije.

Ovo nije baš preterano jednostavno, ali radi posao. Sada znate kako da dobijete kompletan listing svih procesa. Nisu sve to informacije koje možete dobiti o procesima. Pogledajte za više detalja man stranu za ps komandu. Ipak, opcije koji su navedene gore su najpopularnije i njih ćete najčešće koristiti.