Sunteți pe pagina 1din 4

Laboratorul 4

Software management
Tutorial

1. ps
Tastati comanda
ps

Se afiseaza procesele deschise din terminalul curent.


Tastati comanda
ps -ef

Se vor afisa toate procesele ce ruleaza in sistem.


Acelasi lucru poate fi efectuat si ruland comanda
ps aux

In acest caz, argumentele comenzii ps nu sunt prefixate de -. Este cazul


argumentelor date in format BSD.
Exista 3 formate pentru optiunile unei comenzi:


formatul lung (de exemplu --help)

formatul GNU (ca in ls -l)

formatul BSD (ps aux)

Puteti vedea semnificatia argumentelor mai des folosite pentru ps, in toate
cele 3 formate, ruland
ps --help

sau o comanda cu un argument nevalid.


Rulati
ps -u debian

pentru a lista toate procesele utilizatorului student. Alternativ, rulati si


ps U debian

Se recomanda folosirea argumentelor cu - (in stil GNU). Cu toate acestea, in


unele cazuri forma BSD este mai potrivita.

2. top
Utilitarul ps poate fi folosit pentru a vizualiza procesele sistemului la un
anumit moment de timp.
1

Pentru a vizulizare timp real, folosim top. Rulati comanda:


top

Se vor afisa primele procese sortate dupa gradul de folosire al procesorului.


Parametrii acestei comenzi sunt similari comenzii ps.
Folositi top pentru a lista doar procesele utilizatorului debian:
top -u debian

Observati ca daca tastati h in timp ce top ruleaza se afiseaza un ecran


informativ in care sunt listate comenzile interactive acceptate de top.
De exemplu, daca tastati u puteti selecta interactiv ce utilizatori sa fie afisati.
Afisati procesele utilizatorului root

3. Ierarhia de procese.
Utilitarul pstree afiseaza sub forma arborescenta toate procesele existente
in momentul lansarii lui. Utilizand
pstree

identificati primul proces creat la lansarea sistemului de operare (radacina


arborelui).
Identificati PID-ul acestui proces folosind ps. Folositi argumentul -C pentru a
specifica numele executabilului init.

4. Semnale
Comunicarea intre procese se poate realiza prin semnale.
Un utilizator ii trimite un semnal unui proces, utilizand comanda kill.
Folositi
kill -l

pentru a vedea toate semnalele pe care i le puteti trimite unui proces.


Descarcati programul

gedit astfel:

gedit

Deschideti un alt terminal si rulati comanda urmatoare pentru a afla PID-ul


procesului creat
pgrep gedit

Alternativ, puteti folosi comanda pidof.


Rulati urmatoarele comenzi in acelasi terminal pentru a trimite mesaje
procesului creat:
kill
kill
kill
kill
kill
kill
kill
kill

-1 `pidof gedit`
-2 `pidof gedit`
-3 `pidof gedit`
-5 `pidof gedit`
-6 `pidof gedit`
-7 `pidof gedit`
-11 `pidof gedit`
-19 `pidof gedit`

kill -18 `pidof gedit`


kill -INT `pidof gedit`
kill `pidof gedit`
pkill gedit
pkill -1 gedit
pkill -INT gedit

In terminalul in care programul ruleaza, tastati, pe rand combinatiile de taste


urmatoare si observati ce semnale se trimit:




CTRL-Z
CTRL-C
CTRL-\

La final, rulati comanda:


kill -9 `pidof gedit`

Observati ca semnalul 9 (SIGKILL) nu poate fi tratat de nici o aplicatie.

5. fg. Operatorul &.


Utilizand vim deschideti fisierul Process:
vim Process

Scrieti textul PID, proc in fisier.


Tastati Ctrl-Z. Procesul este trimis in background.
Ruland
ps

observati cate procese se afiseaza.


Procesul vim se afla in background. Reveniti la el tastand comanda
fg

Trimiteti-l din nou in fundal (Ctrl-Z). Porniti un alt proces vim, direct in
fundal cu
vim Process &

Prezenta lui & a fortat procesul sa porneasca direct in fundal.


Rulati
jobs

pentru a vedea toate procesele care se afla in fundal.


Tastati
fg

pentru a aduce in foreground un proces din fundal.


Dupa cum observati, se aduce ultimul proces trimis in fundal.
Trimiteti Ctrl-Z procesului vim din foreground.
Rulati comanda
fg 1

Observati ca se aduce primul proces trimis in fundal.


Aduceti ambele procese in foreground si iesiti din vim.

Exercitii

1. Nohup
Porniti procesul corespunzator comenzii ping -c 10000
google.com intr-un terminal. Inchideti acest terminal si verificati
(folosind ps si top) daca procesul ping mai exista.
Rezolvare
$ ping -c 10000 google.com
Alt-F4 (Enter)
$ ps -e | grep ping
$ top # cautam ping in output

Incercati acelasi lucru si trimitand procesul in background prin folosirea &.


Rezolvare
$ ping -c 10000 google.com &
Alt-F4 (Enter)
$ ps -e | grep ping
$ top # cautam ping in output si nu-l gasim

Incercati si folosind nohup, trimitand procesul in background prin &.


Rezolvare
$ nohup ping -c 10000 google.com &
Alt-F4 (Enter)
$ ps -e | grep ping
$ top # cautam ping in output si il gasim

S-ar putea să vă placă și