Ps: Difference between revisions
Created page with 'Arina Püvi' |
No edit summary |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Arina Püvi | = Autor = | ||
'''Autor: ''' Arina Püvi A21<br /> | |||
'''Täiendanud:''' Epp Maaten, AK21 2015/16<br /> | |||
'''Viimati muudetud: ''' 20.12.2015<br /> | |||
= Sissejuhatus = | |||
Operatsioonisüsteem peab arvet protsesside ja ressursside kohta. Protsess on käivitatud programm, millele on eraldatud protsessori ja mälu (aadressiruum) ressursid. [http://enos.itcollege.ee/~kloodus/osadmin/Loeng2015/loeng04%20-%20kasutaja%20keskkond%20ja%20protsessid%20-%202015.odp [1]] | |||
'''ps''' ''(process status)'' on programm, mis UNIXi-laadsetes operatsioonsüsteemides kuvab teavet töötavate protsesside kohta. Windows PowerShell'is teenib sisuliselt sama eesmärki käsk Get-Process, mille aliasena on eeldefineeritud ka '''ps'''. [http://en.wikipedia.org/wiki/Ps_(Unix) [2]]. Protsesside jälgimiseks kasutatakse ka graafilisel kujul TaskManager'i (Windows) ning Activity Monitor'i (MacOSX). | |||
= Kirjeldus = | |||
Andmeid protsesside kohta hoitakse protsessitabelis. Protsessil on identifikaator PID. Protsess võib käivitada teisi protsesse. Protsess, mis käivitas teise protsessi nimetatakse <u>vanemaprotsessiks</u> ''(parent process)''. Protsessid moodustavad protsessipuu, mille tipuks on esimesena käivitatud protsess. Protsessipuu saab kuvada korraldusega '''pstree'''. | |||
Protsessidel on: | |||
* sisendvoog '''STDIN''' | |||
* väljundvoog '''STDOUT''' | |||
* veavoog '''STDERR''' | |||
[http://enos.itcollege.ee/~kloodus/osadmin/Loeng2015/loeng04%20-%20kasutaja%20keskkond%20ja%20protsessid%20-%202015.odp [1]] | |||
Protsesside informatsiooni kuvamiseks on vajalikud sobilikud õigused. Vaikimisi valib '''ps''' käsk protsessid, millel on sama kasutaja-ID kui '''ps''' käsu andjal ning sama kontrollterminal kui protsessi esilekutsujal. [http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ps.html [3]] | |||
==== <u>Protsessitabel</u>==== | |||
Utiliit '''ps''' kuvab tavaliselt iga protsessi kohta infot eraldi real. Protsessi kirjeldav rida sisaldab protsessi ID-numbrit, kontrollivat terminali, CPU aega ja seotud käsku. Erinevate võtmetega on võimalik '''ps''' käsku muuta ja filtreerida otsitavaid protsesse. Kui käsus on rohkem kui üks sorteerimise võti, siis protsessid kuvatakse viimasena defineeritud sorteerimiskriteeriumi alusel. [BSD General Commands Manual] | |||
<pre> | |||
ps | |||
PID TTY TIME CMD | |||
2643 pts/o 00:00:00 su | |||
2644 pts/0 00:00:00 bash | |||
3092 pts/0 00:00:00 ps | |||
</pre> | |||
Kõikidel töötavatel protsessidel on unikaalsed identifikaatorid (PID), mis jäävad vaikimisi vahemikku 1 - 32767. Igale uuele protsessile määratakse järgmine vaba PID. Kui protsess lõpeb oma töö (või tapetakse), vabastab ta oma PID. Jõudes maksimaalse PID-ni, võetakse järgmise protsessi PID-ks esimene vaba väikseima numbriga PID ja nii edasi. | |||
Tulp '''TTY''' kirjeldab terminali, milles protsess käivitati. Lihtsa, ilma võtmeteta '''ps''' käsuga näeme ainult nende protsesside nimekirja, mida käivitatakse jooksvas terminalis, seega kõikidel protsessidel veerus TTY on sama info. Veerg '''TIME''' näitab aega, mille jooksul on protsess kasutanud CPU (keskprotsessori) ressursse. See ei ole aeg, mille jooksul protsess on sooritatud. Ajaveerg peaks sisaldama võimalikult väikest väärtust võrreldes ajaga, mis kulub protsessi täitmiseks. Kui aeg on suur, võib see osutada häiretele. Veerus '''CMD''' on esitatud protsessi enda nimi. | |||
[http://jack.kiev.ua/docs/slackbook/process-control-ps.html [4]] | |||
==== <u>Laiendatud protsessitabeli elemendid</u>==== | |||
{| | |||
|- | |||
| '''UID''' || kasutaja identifikaator | |||
|- | |||
| '''PID''' || protsessi identifikaator | |||
|- | |||
| '''PPID''' || vanemprotsessi identifikaator | |||
|- | |||
| '''C''' || protsesside prioriteet, seda tunnust kasutab ülesannete planeerija | |||
|- | |||
| '''STIME''' || protsessi stardiaeg | |||
|- | |||
| '''TTY''' || terminal, millega antud protsess on seotud | |||
|- | |||
| '''TIME''' || aeg, mille jooksul protsessori ressursse see protsess hõivas | |||
|- | |||
| '''CMD''' || käsk, mis käivitas selle protsessi | |||
|- | |||
| '''STAT''' || seisund, milles protsess hetkel asub. Seisundit kuvatakse sümbolite jadana, nt ''RWNA''. Esimene sümbol väljendab töötamist (nt R - töötav ''(running)''). | |||
|} | |||
[https://ru.wikipedia.org/wiki/Ps [5]] | |||
= Protsesside seisundit iseloomustavad parameetrid = | |||
{| | |||
|- | |||
| '''R''' || protsess töötab | |||
|- | |||
| '''S''' || protsess ootab (magab vähem kui 20 sek) | |||
|- | |||
| '''I''' || protsess seisab (magab rohkem kui 20 sek) | |||
|- | |||
| '''D''' || protsess ootab sisestust/väljastust (või muud lühi sündmust), katkematu | |||
|- | |||
| '''Z''' || nn zombie - surnud protsess, millel pole vanemat | |||
|- | |||
| '''T''' || protsess lõpetatud | |||
|- | |||
| '''W''' || protsess välja saalitud (swap'is) | |||
|- | |||
| '''<''' || protsess on prioriteetses režiimis (esiplaanil) | |||
|- | |||
| '''N''' || protsess on madala prioriteediga režiimis | |||
|- | |||
| '''L''' || tegelik protsess, kus on lehekülgi, mis on lukustatud mälus | |||
|} | |||
[BSD General Commands Manual] | |||
= Võtmed protsesside sorteerimiseks = | |||
; Käsu süntaks: ps [võtmed] | |||
Lisades allolevad võtmed käsule '''ps''', saadakse järgmised aruanded: | |||
{| | |||
|- | |||
| '''-A''' || kõik protsessid | |||
|- | |||
| '''-a''' || kuvab teiste ja ka protsessi algataja protsesse. Välja on arvatud peamised protsessid, millel pole kontrollivat terminali. Kui lisada võti '''x''', kuvatakse ka need | |||
|- | |||
| '''-N ''' || valiku eitamine | |||
|- | |||
| '''-d''' || kõik ptosessid, kust on välja arvatud peamised süsteemsid protsessid | |||
|- | |||
| '''-e''' || kõik protsessid, mis praegu töötavad | |||
|- | |||
| '''T''' || kõik protsessid konkreetsel terminalil | |||
|- | |||
| '''a''' || jooksva terminali protsessid, samuti teiste kasutajate protsessid | |||
|- | |||
| '''r''' || ainult töötavate protsessi informatsioon | |||
|- | |||
| '''x''' || lahti ühendatud terminalist protsessid | |||
|- | |||
| '''-f''' || loob terviknimekirja protsessidest | |||
|- | |||
| '''-j''' || trükib sessiooni ID ja protsessi gruppi ID | |||
|- | |||
| '''-l''' || loob pika nimekirja | |||
|- | |||
| '''-L''' || loob infot igast kergest protsessist igast valitud protsessist | |||
|- | |||
| '''-p''' || kuvab infot protsessidele, kelle ID numbrid on esitatud proclist'is | |||
|- | |||
| '''-g''' ''grouplist'' || kuvab infot protsessidest, mille sessiooni liidrid on olemas grouplist'is | |||
|- | |||
| '''-G''' ''grouplist'' || kuvab infot protsessidest, mille tegelikud grupi ID-numbrid on olemas grouplist'is | |||
|- | |||
| '''-n''' ''namelist'' || kuvab alternatiivse süsteemi namelist'i faili nime vaikimisi väärtuse asemel. | |||
|- | |||
| '''-o''' ''format'' || kuvab infot vastavalt kirjeldatud formaadile | |||
|- | |||
| '''-p''' ''proclist'' || kuvab infot protsessidest, mille ID-numbrid on esitatud proclist'is | |||
|- | |||
| '''-s''' ''sidlist'' || nimekiri kõigi sessiooni liidritest, kelle ID-numbrid on olemas sidlist'is | |||
|- | |||
| '''-t''' ''termlist'' || kuvab infot ainult nendest protsessidest, mis on seotud terminaliga, mille nimi on termlist'is | |||
|- | |||
| '''-u''' ''userlist'' || kuvab infot protsessidese, mille kasutaja ID-numbrid või login-nimed on toodud userlist'is | |||
|- | |||
| '''-U''' ''userlist'' || kuvab infot protsessidest, mille tegelikud kasutaja ID-numbrid ja login-nimed on toodud userlist'is | |||
|} | |||
[http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ps.html [3]] | |||
= Näited = | |||
Kasutades õiget võtit, saab kuvada täieliku protsesside nimekiri, mis teostatud kasutaja süsteemis. | |||
<pre> | |||
ps ax | |||
PID TTY STAT TIME COMMAND | |||
1 ? S 0:01 init [3] | |||
2 ? SN 0:00 [ksoftirqd/0] | |||
3 ? S< 0:00 [events/0] | |||
4 ? S< 0:00 [khelper] | |||
5 ? S< 0:00 [kblockd/0] | |||
29 ? S 0:00 [pdflush] | |||
</pre> | |||
Täielik informatsioon igast protsessist käesoleval ajahetkel: '''ps -ef''' | |||
Veel täpsemat informatsiooni teostatavate protsesside kohta saab käsuga: '''ps aux'''. <br /> | |||
Selle võtme abil saab näiteks otsida lisainformatsiooni, milline kasutaja protsessi käivitas, kui palju ta kasutab süsteemi ressursse (veerg CPU, MEM, VSZ ja RSS) ja millal protsess algas. | |||
[http://www.computerhope.com/unix/ups.htm [6]] | |||
= Märkused = | |||
* '''ps''' alternatiiv on käsk '''top''', mis kuvab ekraanile koguaeg täieneva info protsesside kohta. Samas on '''top''' abil saadud info kuvamine piiratud akna suurusega, seega ignoreeritake infot, mis ei mahu ekraanile, lihtsalt ignoreeritakse. | |||
* '''ps''' käsku on mugav kasutada '''less''' utiliitiga teostatava informatsiooni kerimiseks vajutades üles ja alla nupud, näiteks '''ps ax | less'''. | |||
* Kasutades '''grep''' utiliiti on mugav otsida ja kuvada ainult vajalikud protsessid, näiteks '''ps ax | grep smbd'''. | |||
[https://ru.wikipedia.org/wiki/Ps [5]] | |||
= Sugulaskäsud = | |||
* '''top''' | |||
* '''pstree''' | |||
* '''proc''' | |||
[https://ru.wikipedia.org/wiki/Ps [5]] | |||
= Kokkuvõte = | |||
Protsesse tuleb hallata, et arvuti töötaks efektiivselt ja kasutaks optimaalselt talle antud mälu. Prosessid tuleb ka vajadusel katkestada (tappa). Protsesside haldamiseks on vaja tunda '''ps''' käsu arvukaid võimalusi, et olla võimeline hankima vajalikku infot protsesside kohta ning osata seda '''ps''' käsu vahenditega analüüsida. | |||
= Kasutatud materjal = | |||
Käsu manuaal (BSD General Commands Manual)<br/> | |||
http://enos.itcollege.ee/~kloodus/osadmin/Loeng2015/loeng04%20-%20kasutaja%20keskkond%20ja%20protsessid%20-%202015.odp [1] <br/> | |||
http://en.wikipedia.org/wiki/Ps_(Unix) [2]<br/> | |||
http://pubs.opengroup.org/onlinepubs/009695399/utilities/ps.html [3]<br/> | |||
http://jack.kiev.ua/docs/slackbook/process-control-ps.html [4]<br/> | |||
http://ru.wikipedia.org/wiki/Ps [5]<br/> | |||
http://www.computerhope.com/unix/ups.htm [6]<br/> | |||
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]] |
Latest revision as of 02:58, 21 December 2015
Autor
Autor: Arina Püvi A21
Täiendanud: Epp Maaten, AK21 2015/16
Viimati muudetud: 20.12.2015
Sissejuhatus
Operatsioonisüsteem peab arvet protsesside ja ressursside kohta. Protsess on käivitatud programm, millele on eraldatud protsessori ja mälu (aadressiruum) ressursid. [1]
ps (process status) on programm, mis UNIXi-laadsetes operatsioonsüsteemides kuvab teavet töötavate protsesside kohta. Windows PowerShell'is teenib sisuliselt sama eesmärki käsk Get-Process, mille aliasena on eeldefineeritud ka ps. [2]. Protsesside jälgimiseks kasutatakse ka graafilisel kujul TaskManager'i (Windows) ning Activity Monitor'i (MacOSX).
Kirjeldus
Andmeid protsesside kohta hoitakse protsessitabelis. Protsessil on identifikaator PID. Protsess võib käivitada teisi protsesse. Protsess, mis käivitas teise protsessi nimetatakse vanemaprotsessiks (parent process). Protsessid moodustavad protsessipuu, mille tipuks on esimesena käivitatud protsess. Protsessipuu saab kuvada korraldusega pstree.
Protsessidel on:
- sisendvoog STDIN
- väljundvoog STDOUT
- veavoog STDERR
[1]
Protsesside informatsiooni kuvamiseks on vajalikud sobilikud õigused. Vaikimisi valib ps käsk protsessid, millel on sama kasutaja-ID kui ps käsu andjal ning sama kontrollterminal kui protsessi esilekutsujal. [3]
Protsessitabel
Utiliit ps kuvab tavaliselt iga protsessi kohta infot eraldi real. Protsessi kirjeldav rida sisaldab protsessi ID-numbrit, kontrollivat terminali, CPU aega ja seotud käsku. Erinevate võtmetega on võimalik ps käsku muuta ja filtreerida otsitavaid protsesse. Kui käsus on rohkem kui üks sorteerimise võti, siis protsessid kuvatakse viimasena defineeritud sorteerimiskriteeriumi alusel. [BSD General Commands Manual]
ps PID TTY TIME CMD 2643 pts/o 00:00:00 su 2644 pts/0 00:00:00 bash 3092 pts/0 00:00:00 ps
Kõikidel töötavatel protsessidel on unikaalsed identifikaatorid (PID), mis jäävad vaikimisi vahemikku 1 - 32767. Igale uuele protsessile määratakse järgmine vaba PID. Kui protsess lõpeb oma töö (või tapetakse), vabastab ta oma PID. Jõudes maksimaalse PID-ni, võetakse järgmise protsessi PID-ks esimene vaba väikseima numbriga PID ja nii edasi.
Tulp TTY kirjeldab terminali, milles protsess käivitati. Lihtsa, ilma võtmeteta ps käsuga näeme ainult nende protsesside nimekirja, mida käivitatakse jooksvas terminalis, seega kõikidel protsessidel veerus TTY on sama info. Veerg TIME näitab aega, mille jooksul on protsess kasutanud CPU (keskprotsessori) ressursse. See ei ole aeg, mille jooksul protsess on sooritatud. Ajaveerg peaks sisaldama võimalikult väikest väärtust võrreldes ajaga, mis kulub protsessi täitmiseks. Kui aeg on suur, võib see osutada häiretele. Veerus CMD on esitatud protsessi enda nimi. [4]
Laiendatud protsessitabeli elemendid
UID | kasutaja identifikaator |
PID | protsessi identifikaator |
PPID | vanemprotsessi identifikaator |
C | protsesside prioriteet, seda tunnust kasutab ülesannete planeerija |
STIME | protsessi stardiaeg |
TTY | terminal, millega antud protsess on seotud |
TIME | aeg, mille jooksul protsessori ressursse see protsess hõivas |
CMD | käsk, mis käivitas selle protsessi |
STAT | seisund, milles protsess hetkel asub. Seisundit kuvatakse sümbolite jadana, nt RWNA. Esimene sümbol väljendab töötamist (nt R - töötav (running)). |
[5]
Protsesside seisundit iseloomustavad parameetrid
R | protsess töötab |
S | protsess ootab (magab vähem kui 20 sek) |
I | protsess seisab (magab rohkem kui 20 sek) |
D | protsess ootab sisestust/väljastust (või muud lühi sündmust), katkematu |
Z | nn zombie - surnud protsess, millel pole vanemat |
T | protsess lõpetatud |
W | protsess välja saalitud (swap'is) |
< | protsess on prioriteetses režiimis (esiplaanil) |
N | protsess on madala prioriteediga režiimis |
L | tegelik protsess, kus on lehekülgi, mis on lukustatud mälus |
[BSD General Commands Manual]
Võtmed protsesside sorteerimiseks
- Käsu süntaks
- ps [võtmed]
Lisades allolevad võtmed käsule ps, saadakse järgmised aruanded:
-A | kõik protsessid |
-a | kuvab teiste ja ka protsessi algataja protsesse. Välja on arvatud peamised protsessid, millel pole kontrollivat terminali. Kui lisada võti x, kuvatakse ka need |
-N | valiku eitamine |
-d | kõik ptosessid, kust on välja arvatud peamised süsteemsid protsessid |
-e | kõik protsessid, mis praegu töötavad |
T | kõik protsessid konkreetsel terminalil |
a | jooksva terminali protsessid, samuti teiste kasutajate protsessid |
r | ainult töötavate protsessi informatsioon |
x | lahti ühendatud terminalist protsessid |
-f | loob terviknimekirja protsessidest |
-j | trükib sessiooni ID ja protsessi gruppi ID |
-l | loob pika nimekirja |
-L | loob infot igast kergest protsessist igast valitud protsessist |
-p | kuvab infot protsessidele, kelle ID numbrid on esitatud proclist'is |
-g grouplist | kuvab infot protsessidest, mille sessiooni liidrid on olemas grouplist'is |
-G grouplist | kuvab infot protsessidest, mille tegelikud grupi ID-numbrid on olemas grouplist'is |
-n namelist | kuvab alternatiivse süsteemi namelist'i faili nime vaikimisi väärtuse asemel. |
-o format | kuvab infot vastavalt kirjeldatud formaadile |
-p proclist | kuvab infot protsessidest, mille ID-numbrid on esitatud proclist'is |
-s sidlist | nimekiri kõigi sessiooni liidritest, kelle ID-numbrid on olemas sidlist'is |
-t termlist | kuvab infot ainult nendest protsessidest, mis on seotud terminaliga, mille nimi on termlist'is |
-u userlist | kuvab infot protsessidese, mille kasutaja ID-numbrid või login-nimed on toodud userlist'is |
-U userlist | kuvab infot protsessidest, mille tegelikud kasutaja ID-numbrid ja login-nimed on toodud userlist'is |
[3]
Näited
Kasutades õiget võtit, saab kuvada täieliku protsesside nimekiri, mis teostatud kasutaja süsteemis.
ps ax PID TTY STAT TIME COMMAND 1 ? S 0:01 init [3] 2 ? SN 0:00 [ksoftirqd/0] 3 ? S< 0:00 [events/0] 4 ? S< 0:00 [khelper] 5 ? S< 0:00 [kblockd/0] 29 ? S 0:00 [pdflush]
Täielik informatsioon igast protsessist käesoleval ajahetkel: ps -ef
Veel täpsemat informatsiooni teostatavate protsesside kohta saab käsuga: ps aux.
Selle võtme abil saab näiteks otsida lisainformatsiooni, milline kasutaja protsessi käivitas, kui palju ta kasutab süsteemi ressursse (veerg CPU, MEM, VSZ ja RSS) ja millal protsess algas.
[6]
Märkused
- ps alternatiiv on käsk top, mis kuvab ekraanile koguaeg täieneva info protsesside kohta. Samas on top abil saadud info kuvamine piiratud akna suurusega, seega ignoreeritake infot, mis ei mahu ekraanile, lihtsalt ignoreeritakse.
- ps käsku on mugav kasutada less utiliitiga teostatava informatsiooni kerimiseks vajutades üles ja alla nupud, näiteks ps ax | less.
- Kasutades grep utiliiti on mugav otsida ja kuvada ainult vajalikud protsessid, näiteks ps ax | grep smbd.
[5]
Sugulaskäsud
- top
- pstree
- proc
[5]
Kokkuvõte
Protsesse tuleb hallata, et arvuti töötaks efektiivselt ja kasutaks optimaalselt talle antud mälu. Prosessid tuleb ka vajadusel katkestada (tappa). Protsesside haldamiseks on vaja tunda ps käsu arvukaid võimalusi, et olla võimeline hankima vajalikku infot protsesside kohta ning osata seda ps käsu vahenditega analüüsida.
Kasutatud materjal
Käsu manuaal (BSD General Commands Manual)
http://enos.itcollege.ee/~kloodus/osadmin/Loeng2015/loeng04%20-%20kasutaja%20keskkond%20ja%20protsessid%20-%202015.odp [1]
http://en.wikipedia.org/wiki/Ps_(Unix) [2]
http://pubs.opengroup.org/onlinepubs/009695399/utilities/ps.html [3]
http://jack.kiev.ua/docs/slackbook/process-control-ps.html [4]
http://ru.wikipedia.org/wiki/Ps [5]
http://www.computerhope.com/unix/ups.htm [6]