User Tools

Site Tools


unixmix:capitole:capitol-03

Administrarea proceselor

Tutorial (1)

Informații despre procese

Deschideți un terminal.

  • Rulați comanda ps.
    • Comanda afișează informații despre două procese:
      • ps - comanda tocmai rulată
      • bash - interpretorul de comenzi care rulează în terminal
        • Rețineți PID-ul procesului bash.
  • Rulați încă o dată comanda ps.
    • Ce s-a schimbat în coloana PID. De ce?
  • Rulați comanda pidof bash.
    • Ce observați?
    • Rulați comanda pidof init.
      • Procesul cu PID-ul 1 este rădăcina ierarhiei de procese.
  • Rulați comanda ps -e.
    • Ce observați?
    • Pentru vizualizarea întregului output puteți folosi bara din dreapta sau Shift-PageUp/Shift-PageDown.
    • Căutați în pagina de manual pentru a afla ce face parametrul -e.
  • Rulați comanda ps -eF.
    • Ce observați?
    • Căutați în pagina de manual pentru a afla ce face parametrul -F.
    • Observați coloana PPID.
      • Câte linii au același PPID. De ce?
  • Rulați comanda pstree.
    • Se observă mult mai ușor structura ierarhică a proceselor.
      • Navigați mai ușor cu Shift-PageUp/Shift-PageDown.
  • Rulați comanda top.
    • Apăsați tasta h pentru a afla mai multe informații despre cum puteți interacționa cu utilitarul top.
      • Spre exemplu, apăsați tasta F pentru a selecta coloana după care doriți să sortați informația.
        • A pentru a selecta după PID.
    • top afișează diverse informații.
      • câmpul CPU arată cât ocupă din procesor
      • câmpul TIME arată timpul total efectiv de rulare
  • Rulați comanda htop.
    • Utilitarul este asemănător top însă mult mai interactiv.
      • Interacțiunea poate fi făcută și cu mouse-ul.

Tutorial (2)

Informații despre procese din sistemul de fișiere

Directorul /proc conține informații despre toate procesele din sistem.

  • Folosiți comanda tree pentru a afișa structura directorului /proc.
  • Rulați comanda pidof bash.
    • Ce PID are interpretorul curent?
  • Navigați în directorul /proc/$PID, unde $PID este PID-ul anterior.
    • Alternativ, puteți folosi cd /proc/`pidof bash`.
  • Afișați în format lung conținutul directorului curent.
    • Ce reprezintă fișierul exe?
    • Afișați conținutul fișierului limits.
      • Ce observați?

Într-un alt terminal, deschideți editorul nano.

  • Reveniți în primul terminal și aflați PID-ul procesului.
  • Navigați în directorul din ierarhia '/proc' asociat.
  • Listați conținutul directorului.
    • Ce dimensiune ocupă acest director?
      • Dimensiunea spațiului ocupat de un director o aflați folosind comanda du -hs /path/to/folder unde /path/to/folder este calea către director; calea poate fi . pentru a afla spațiul ocupat de directorul curent.
  • Închideți editorul nano.
  • Listați conținutul directorului.
    • Ce observați?

Starea proceselor

  • Rulați comanda yes a.
    • Încercați să tastați o comandă. (exemplu ls)
    • Pentru a opri comanda apăsați Ctrl-c
  • Rulați comanda pidof yes.
    • Ce observați?
  • Rulați comanda yes b.
    • Apăsați Ctrl-z.
  • Rulați comanda pidof yes.
    • Ce observați?
  • Rulați din nou comanda yes. Apăsați Ctrl-z. Apoi rulați pidof yes.
    • Ce observați?
  • Rulați comanda jobs.

Pentru a aduce un proces din starea “Stopped” în “Running” există două posibilități:

  • Rulați comanda fg.
    • Încercați să opriți output-ul prin apăsarea Ctrl-c.
      • Ce observați?
  • Rulați comanda jobs.
  • Rulați comanda bg.
    • Încercați să opriți output-ul prin apăsarea Ctrl-c.
      • Ce observați?
      • Procesul rulează în background. Utilizatorul are acces la terminal, însă output-ul este prea rapid pentru a fi vizibil.
    • Pentru a fi siguri că nu aveți altceva tastat, apăsați enter. Apoi apăsați fg și enter.
      • Procesul este adus în foreground.
        • Încercați să opriți output-ul prin apăsarea Ctrl-c.
      • Ce observați?

Rulați comanda xeyes.

  • Procesul lansat rulează în foreground.
  • Rulați Ctrl-Z în terminal.
    • Observați că aplicația s-a oprit.
  • Rulați comanda jobs.
  • Rulați comanda bg în terminal.
    • Aplicația a început să funcționeze din nou, iar utilizatorul are acces la terminal.
  • Închideți aplicația.
  • Rulați comanda xeyes &
    • Procesul rulează în background.
    • Rulați comanda jobs.
      • Ce observați?

Semnale

  • Rulați comanda yes a.
    • Apăsați Ctrl-z.
    • Rulați jobs.
      • Ce observați?
Procesul a fosst suspendat
  • Rulați comanda fg.
    • Apăsați Ctrl-c.
      • Ce observați?
Procesul a fost pornit în foreground. Interacțiunea cu acesta este permisă.
Ctrl-c omoară procesul.
  • Rulați comanda yes bored.
    • Deschideți un alt terminal. Aflați PID-ul procesului.
  • Rulați comanda kill -STOP $PID, unde $PID este PID-ul aflat anterior
    • Ce observați că s-a întâmplat cu procesul yes?
Procesul a fost suspendat. Similar cu Ctrl-z
  • Rulați comanda kill -l.
    • Repetați experimentul și înlocuiți STOP cu numărul corespunzător aflat.
      • Pentru al doilea experiement, evident PID-ul nu va mai fi același.
Același lucru.

În momentul în care un terminal este închis, acesta transmite tuturor proceselor copil semnalul SIGHUP.

Exerciții

Folosind comanda ps, încercați să afișați doar câmpurile PID și PPID ale tuturor proceselor din sistem.

Filtrați toate procesele din sistem după memoria utilizată (hint: top)

Aflați care este load-ul sistemului folosind comanda top. Ce alte informații puteți afla asemănător?

Folosind comanda yes, faceți în așa fel încât output-ul să arate alternativ literele a și b. Indiciu: background

Rulați comanda gedit. Închideți terminal-ul. Ce s-a întâmplat?

  • Folosiți comanda nohup astfel încât la închiderea terminalului, editorul text să nu se închidă.
unixmix/capitole/capitol-03.txt · Last modified: 2014/09/09 11:57 by razvan