Acțiunile sunt executate la nivelul sistemului de fișiere prin procese. Rularea unei comenzi înseamnă crearea unui proces în sistemul de operare, proces care execută acțiunea indicată de executabilul din care a luat naștere. Procesele sunt entități active care consumă resurse la nivelul sistemului de operare, cele mai importante fiind procesor, memorie și diverse forme de input/output.
Alt+.
, !!
)ps
\time
vs time
killall
vs pkill
ps
, pstree
, top
, htop
, /proc
, pidof
kill
, pkill
time
, lsof
nohup
, screen
, tmux
supervisord
Descărcați arhiva de la adresa http://swarm.cs.pub.ro/~razvan/tmp/packages.zip. Copiați-o în mașina virtuală, decomprimați-o și instalați pachetele din cadrul acesteia.
După ce ați decomprimați arhiva instalați pachetele folosind comezi precum
sudo dpkg -i sysstat_11.0.1-1_i386.deb
Folosirea scurtăturilor din biblioteca readline
Folosirea Alt+.
(sau $_
)
Folosirea istoriei (Ctrl+r
, !!
)
Afișați apoi lista proceselor tuturor utilizatorilor.
Obțineți o listare arborescentă a proceselor folosind comanda pstree
și apoi obțineți o listare similară (arborescentă) folosind comanda ps
. (Indiciu: Căutați după șirul forest în pagina de manual a comenzii ps
).
Afisați toate procesele care nu apartin utilizatorului root
. (Indiciu: Căutați în pagina de manual după șirul negate
)
Sortați procesele de mai sus în ordinea inversă a memoriei RAM consumate (RSS – resident set size). Adică cele mai consumatoare de memorie procese la început.
Din procesele sortate rețineți doar primele 5 intrări. (Indiciu: Folosiți opțiunea --sort
a comenzii ps
.
Dorim să afișăm anumite procese într-o anumită ordine.
Folosiți ps
cu opțiunea corectă pentru a afișa procesele care aparțin utilizatorului training
. Căutați în pagina de manual după șirul user.
Pentru procesele de mai sus afișați PID-ul, comanda completă (cale completă cu parametri), timpul de rulare pe procesor, memoria RAM consumată (RSS – resident set size). Pentru a selecta doar anumite atribute ale unui proces folosiți comanda ps
cu parametrul -o
urmat de opțiunile specifice; urmăriți și pagina de manual.
Afișați cele mai consumatoare de memorie 5 procese din sistem care nu aparțin utilizatorului root
.
Pentru afișarea de mai sus, folosiți opțiunea de ascundere a header-ului în afișarea comenzii ps
.
Afisați pentru toate procesele utilizatorului training
următoarele atribute: pid, ppid, niceness-ul, comanda cu ajutorul căreia a fost lansat procesul, numărul de fire de execuție (thread-uri) din procesul respectiv. Pentru a găsi numărul de fire de execuție (thread-uri) din procesul respectiv, căutați după șirul number în pagina de manual a comenzii ps
.
Dorim să lucrăm cu grupuri de procese care țin de un utilizator.
Pe un tab nou de terminal adăugăm utilizatorul ana
folosind comenzile
$ sudo su # adduser ana [...] # exit # sau puteti folosi combinatia de taste Ctrl+d $
În acel tab nou ne autentificăm ca utilizatorul ana
folosind comanda
$ su - ana
În cel nou tab, din contul utilizatorului ana
, porniți în background mai multe procese: sleep
, emacs
, gedit
.
Din primul tab, folosiți, ca root
, pkill
pentru o încheia execuția proceselor utilizatorului ana
; adică rulați sudo pkill …
(cu ce opțiuni sunt utile). Este posibil să fie necesar să folosiți semnalul SIGKILL
ca să fie garantată încheierea execuției.
Pe un tab nou de terminal porniți în background procese ca utilizatorul root
, student
și ana
.
În acel tab aflăm care este identificatorul terminalului curent folosind comanda
$ tty
Din primul tab, folosiți, ca root
, pkill
pentru o încheia execuția proceselor de pe al doilea terminal; adică rulați sudo pkill …
(cu ce opțiuni sunt utile). Este posibil să fie necesar să folosiți semnalul SIGKILL
ca să fie garantată încheierea execuției.
Folosirea lsof
pentru a investiga redirectare și pipe din cadrul unui proces.
Folosirea time
pentru a afla informații legate de încheierea rulării unui proces.
Ne propunem să pornim un tracker de BitTorrent în background, folosind nohup
. Pentru început porniți tracker-ul în foreground ca să acomodați cu modul său de pornire.
bttrack --dfile bttrack.dfile --port 12345
Închideți tracker-ul (folosind Ctrl+c
) și porniți-l în background folosind comanda nohup
. Redirectați output-ul tracker-ului în fișierul cu numele bttrack.log
.
Închideți shell-ul din care ați lansat tracker-ul. Afișați fișierele deschise de procesul tracker folosind comanda lsof
.
Listați serviciile sistemului și verificați că procesul tracker este pornit folosind comanda
netstat -tlpn
Porniți într-un ecran tmux
un tracker BitTorrent, un server HTTP Python, un editor Vim sau Emacs și încă un ecran pentru comenzi.
tmux
folosiți comanda
tmux
Pentru a deschide ecrane noi în tmux
folosiți combinația de taste Ctrl+b
și apoi separat c
. Pentru a tranzita între ferestre folosiți combinațiile de taste Ctrl+b
urmat de n
și Ctrl+b
urmat de p
. Pentru a închide un ecran închideți shell-ul folosind Ctrl+d
sau exit
sau logout
.
Pentru a vă detașa de tmux
folosiți combinația de taste Ctrl+b
urmat de d
. Pentru a vă reatașa la tmux
folosiți comanda
tmux attach
python -m SimpleHTTPServer
Folosiți supervisord
pentru a porni un tracker de BitTorrent cu ajutorul comenzii bttrack
.