This is an old revision of the document!


Get a Life

Procese detașate de terminal

Pentru acest exercițiu avem nevoie de pachetul transmission-cli. Îl putem instala folosind comanda:

student@uso:~$ sudo apt-get install transmission-cli

Folosiți Transmission în linie de comandă pentru a descărca o imagine de Ubuntu, de aici. Descărcați fișierul .torrent în /home/student/Downloads.

Înainte de a rula transmission trebuie mărite buffer-ele în care se acumulează pachete pentru porturi. Trebuie rulate comenzile:

student@uso:~$ sudo net.core.wmem_max=7212992
student@uso:~$ sudo net.core.rmem_max=7212992
student@uso:~$ transmission-cli ~/Downloads/ubuntu-17.04-desktop-amd64.iso.torrent

Dacă procesul nu porneşte şi aveţi erorile de mai jos

[2018-10-10 19:41:21.422] UDP: Failed to set receive buffer: requested 4194304, got 425984
[2018-10-10 19:41:21.422] UDP: Please add the line "net.core.rmem_max = 4194304" to /etc/sysctl.conf
[2018-10-10 19:41:21.422] UDP: Failed to set send buffer: requested 1048576, got 425984
[2018-10-10 19:41:21.422] UDP: Please add the line "net.core.wmem_max = 1048576" to /etc/sysctl.conf
[2018-10-10 19:41:21.422] DHT: Generating new id
ERROR: Unrecognized torrent "/home/student/Download/ubuntu-17.04-desktop-amd64.iso.torrent".
 * If you're trying to create a torrent, use transmission-create.
 * If you're trying to see a torrent's info, use transmission-show.
[2018-10-10 19:41:21.471] DHT: Not saving nodes, DHT not ready
[2018-10-10 19:41:21.471] Port Forwarding: Stopped

asiguraţi-vă că aţi executat comenzile cu sysctl:

student@uso:~$ sudo net.core.wmem_max=7212992
student@uso:~$ sudo net.core.rmem_max=7212992

Dintr-un alt terminal determinați PID-ul acestui proces. Închideți terminalul din interfața grafică (X din colțul din dreapta sus). Căutați din nou procesul după identificator.

1.1 Ce s-a întâmplat cu procesul nostru transmission-cli tocmai creat? Care credeți că este cauza?

Deschideți din nou un terminal, dar de data folosiți-vă de comanda nohup (man nohup) pentru a lansa procesul transmission-cli pentru descărcarea imaginii de Ubuntu. Închideți din nou terminalul din interfața grafică. Observați că procesul rămâne în viață. Determinați PID-ul acestui proces.

1.2 Ce fel de semnal se generează atunci când închidem terminalul și pe care a doua oară procesul transmission-gtk îl ignoră?

Trimiterea de semnale unui proces

Pentru acest exercițiu trebuie să vă asigurați că sunteți în directorul potrivit. Rulați comanda

cd ~/uso.git/labs/02-process/support/

În directorul respectiv este scriptul batman.sh:

student@uso:~uso.git/labs/02-process/support$ ls
batman.sh  bg-proc.sh  it-s-a-trap.sh

Rulați scriptul batman.sh. Procesul interceptează toate semnalele cu indecși de la 1 la 13, mai puțin 9 (din motive evidente). De fiecare dată când primește un semnal cu indexul între 1 și 13 el afișează pe ecran un caracter. Mai jos aveți maparea dintre indecșii semnalelor și caracterul afișat:

Index semnal Caracter
1 o
2 u
3 c
4 d
5 e
6 z
Index semnal Caracter
7 s
8 h
10 (space)
11 r
12 k
13 l

2.1 Într-un alt terminal aflați PID-ul procesului și trimiteți-i semnale astfel încât procesul să afișeze pe ecran șirul de caractere uso rullz.

Recuperare fișier folosind procfs

Descărcați un fișier video de pe Internet. Puteți instala și utiliza youtube-dl pentru a descărca un film de pe YouTube.

Rulați filmul cu un player de filme. În timp ce rulează, ștergeți fișierul.

Până la a termina de rulat filmul, recuparați fișierul folosind procfs (din /proc), din directorul aferent procesului player de filme.

Inspectare comenzi de investigare procese

Folosind utilitarul strace inspectați ce fișiere din procfs (din /proc) sunt deschide de utilitarul lsof pentru afișarea descriptorilor deschiși de un proces existent, de utilitarul pmap pentru afișarea memorie unui proces și de utilitarul free pentru afișarea memoriei disponibile din sistem.

uso/laboratoare/new/02-process/get-a-life.1539189931.txt.gz · Last modified: 2018/10/10 19:45 by mbarbulescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0