Procese
Rularea unei instanțe a unui program se numește proces. În Linux, id-ul procesului (PID) este utilizat pentru a reprezenta un proces care este distinct pentru fiecare proces. Există două tipuri de procese,
- Procese de fundal
- Procese de prim plan
Procese de fundal
Procesele de fundal încep în terminal și rulează singure. Dacă rulați un proces în terminal, ieșirea acestuia va fi afișată într-o fereastră a terminalului și puteți interacționa cu acesta, dar dacă nu trebuie să interacționați cu procesul, îl puteți rula în fundal. Dacă doriți să rulați un proces în fundal, trebuie doar să adăugați un semn „&” la sfârșitul comenzii și acesta va începe să ruleze în fundal; vă va economisi timp și veți putea începe un alt proces. Pentru listarea proceselor care rulează în fundal, utilizați comanda „joburi”.„Va afișa toate procesele care rulează în fundal.
De exemplu, actualizarea este un proces lung în Linux. Este nevoie de prea mult timp și, dacă doriți să faceți alte lucruri în timp ce sistemul se actualizează, utilizați comanda de fundal.
[e-mail protejat]: ~ $ sudo apt-get upgrade -y &Va începe să ruleze în fundal. Și între timp puteți interacționa cu alte programe. Puteți verifica câte și ce procese rulează în fundal tastând această comandă.
[e-mail protejat]: ~ $ joburi[1] + Rularea sudo apt-get upgrade -y &
Procese de prim plan
Toate procesele pe care le executăm în terminal sunt, în mod implicit, rulate ca procese din prim-plan. Le putem gestiona prin comenzi de prim plan și de fundal.
Puteți aduce în prim plan orice proces de fundal listat în joburi tastând comanda „fg” urmată de numărul procesului de fundal.
[e-mail protejat]: ~ $ fg% 1sudo apt-get upgrade -y
Și dacă doriți să duceți acest proces la fundal, tastați această comandă.
[e-mail protejat]: ~ $ bg% 1Listarea și gestionarea proceselor cu comanda ps
Procesul de listare cu comanda ps este unul dintre cele mai vechi moduri de a vizualiza procesele care rulează terminalul. Tastați comanda ps pentru a enumera ce procese rulează și câtă resursă de sistem utilizează și cine le rulează.
[e-mail protejat]: ~ $ ps uPID UTILIZATOR% CPU% MEM VSZ RSS TTY STAT TIMP DE PORNIRE COMANDĂ
Jim 1562 0.0 0.0 164356 6476 tty2 Ssl + 13:07 0:00 shell
Jim 1564 5.2 0.9 881840 78704 tty2 Sl + 3:07 13:13 dauth
Jim 2919 0.0 0.0 11328 4660 puncte / 0 SS 13:08 0:00 bash
Jim 15604 0.0 0.0 11836 3412 puncte / 0 R + 17:19 0:00 ps u
... trage ..
Coloana utilizator afișează numele utilizatorului în tabelul de mai sus, iar PID arată ID-ul procesului. Puteți utiliza PID pentru a ucide sau a trimite semnalul de ucidere către un proces. % CPU arată procentul procesorului procesorului, și% MEM arată utilizarea memoriei cu acces aleatoriu. Pentru a ucide un proces, tastați.
[e-mail protejat]: ~ $ kill [proces ID (PID)]sau
[e-mail protejat]: ~ $ kill -9 [ID proces (PID)]Utilizați comanda ps aux pentru a vedea toate procesele care rulează și adăugați o conductă pentru a o vedea în ordine.
[e-mail protejat]: ~ $ ps aux | Mai puținDacă doriți să rearanjați coloanele, o puteți face adăugând un steag -e pentru enumerarea tuturor proceselor și -o pentru indicarea coloanelor după cuvinte cheie din comanda ps.
[protejat prin e-mail]: ~ $ ps -eo pid, utilizator, uid,% cpu,% mem, vsz, rss, commPID USER UID% CPU% MEM VSZ RSS COMMAND
1 rădăcină 0 0.1 0.1 167848 11684 sistematizat
3032 jim 1000 16.5 4.7 21744776 386524 crom
... trage ..
Opțiuni pentru comanda ps.
Opțiunea u este utilizată pentru listarea proceselor de către utilizatori.
[e-mail protejat]: ~ $ ps uOpțiunea f este utilizată pentru a afișa lista completă.
[e-mail protejat]: ~ $ ps fOpțiunea x este utilizată pentru a afișa informații despre proces fără un terminal.
[e-mail protejat]: ~ $ ps xOpțiunea e este utilizată pentru a afișa informații extinse.
[e-mail protejat]: ~ $ ps eo opțiune este utilizată pentru listarea tuturor proceselor cu terminalul.
[e-mail protejat]: ~ $ ps aOpțiunea v este utilizată pentru a afișa formatul de memorie virtuală.
[e-mail protejat]: ~ $ ps vSteaguri pentru comanda ps.
-Steagul e este utilizat pentru a vedea fiecare proces din sistem.
[e-mail protejat]: ~ $ ps -e-Steagul u este utilizat pentru a vedea procesele care rulează ca root.
[e-mail protejat]: ~ $ ps -u-Steagul f este utilizat pentru o listă completă a proceselor.
[e-mail protejat]: ~ $ ps -f-o pavilion este utilizat pentru listarea proceselor în coloana dorită.
[e-mail protejat]: ~ $ ps -opstree
pstree este o altă comandă pentru listarea proceselor; arată ieșirea într-un format de copac.
[e-mail protejat]: ~ $ pstree
Opțiuni pentru comanda pstree
-n este folosit pentru sortarea proceselor de către PID.
[e-mail protejat]: ~ $ pstree -n-H este folosit pentru evidențierea proceselor.
[e-mail protejat]: ~ $ pstree -H [PID][protejat prin e-mail]: ~ $ pstree -H 6457
-A este utilizat pentru afișarea ieșirii, inclusiv a argumentelor din linia de comandă.
[e-mail protejat]: ~ $ pstree -a-g este folosit pentru afișarea proceselor după ID-ul grupului.
[e-mail protejat]: ~ $ pstree -g-s este folosit pentru însămânțarea copacului sau proces specific.
[e-mail protejat]: ~ $ pstree -s [PID][protejat prin e-mail]: ~ $ pstree -s 6457
[nume de utilizator] este utilizat pentru afișarea proceselor deținute de un utilizator.
[e-mail protejat]: ~ $ pstree [userName][e-mail protejat]: ~ $ pstree jim
pgrep
Cu comanda pgrep, puteți găsi un proces de rulare bazat pe anumite criterii. Puteți utiliza numele complet sau abrevierea procesului pentru a găsi sau după numele de utilizator sau alte atribute. Comanda pgrep urmează următorul model.
[e-mail protejat]: ~ $ Pgrep [opțiune] [model][email protected]: ~ $ pgrep -u jim chrome
Opțiuni pentru comanda pgrep
-eu este folosit pentru căutarea nesensibilă la majuscule
[e-mail protejat]: ~ $ Pgrep -i Firefox-d este folosit pentru delimitarea ieșirii
[e-mail protejat]: ~ $ Pgrep -u jim -d:-tu este folosit pentru găsirea procesului deținut de un utilizator
[e-mail protejat]: ~ $ Pgrep -u jim-A este folosit pentru listarea proceselor alături de comenzile lor
[e-mail protejat]: ~ $ Pgrep -u jim -a-c este folosit pentru a arăta numărul proceselor de potrivire
[e-mail protejat]: ~ $ Pgrep -c -u jim-l este folosit pentru listarea proceselor și numele acestora
[e-mail protejat]: ~ $ Pgrep -u jim -lpkill
Cu comanda pkill, puteți trimite un semnal către un proces care rulează pe baza anumitor criterii. Puteți utiliza numele complet sau abrevierea procesului pentru a găsi sau după numele de utilizator sau alte atribute. Comanda pgrep urmează următorul model.
[e-mail protejat]: ~ $ Pkill [Opțiuni] [Modele][e-mail protejat]: ~ $ Pkill -9 crom
Opțiuni pentru comanda pkill
-semnal este utilizat pentru trimiterea unui semnal e.g. SIGKILL, SIGTERM etc.
[e-mail protejat]: ~ $ Pkill --signal SIGTERM vscode-HUP este folosit pentru reîncărcarea unui proces
[e-mail protejat]: ~ $ Pkill -HUP syslogd-f este utilizat pentru uciderea proceselor bazate pe linia de comandă completă.
[protejat prin e-mail]: ~ $ Pkill -f „ping 7.7.7.7 ”-tu este folosit pentru uciderea tuturor proceselor deținute de un utilizator.
[e-mail protejat]: ~ $ Pkill -u jim-eu este utilizat pentru uciderea insensibilă a cazurilor a procesului de către pkill.
[e-mail protejat]: ~ $ Pkill -i Firefox-9 este utilizat pentru trimiterea unui semnal de ucidere.
[e-mail protejat]: ~ $ Pkill -9 crom-15 este utilizat pentru trimiterea unui semnal de terminare.
[e-mail protejat]: ~ $ Pkill -15 vlclsof (Lista fișierelor deschise)
Acest utilitar din linia de comandă este utilizat pentru listarea fișierelor deschise de mai multe procese. Și, după cum știm, toate sistemele UNIX / Linux recunosc totul ca un fișier, deci este convenabil să utilizați comanda lsof pentru a lista toate fișierele deschise.
[e-mail protejat]: ~ $ lsof
În tabelul de mai sus al comenzii lsof, FD reprezintă descrierea fișierului, cwd reprezintă directorul de lucru curent, txt înseamnă fișier text, mem înseamnă fișiere mapate în memorie, mmap înseamnă dispozitive mapate în memorie, REG reprezintă un fișier obișnuit, DIR reprezintă Director, rtd înseamnă director rădăcină. Există alte opțiuni pe care le puteți utiliza cu comanda lsof.
Opțiuni pentru comanda lsof.
-c este folosit pentru listarea fișierelor deschise după numele procesului lor.
[e-mail protejat]: ~ $ lsof -c crom-tu este utilizat pentru listarea fișierelor deschise de către un utilizator.
[e-mail protejat]: ~ $ lsof -u jim-eu este utilizat pentru listarea proceselor care se execută pe un port.
[e-mail protejat]: ~ $ lsof -i+D este utilizat pentru listarea fișierelor deschise într-un director.
[e-mail protejat]: ~ $ lsof + D / home /-p este utilizat pentru listarea fișierelor deschise printr-un proces.
[protejat prin e-mail]: ~ $ lsof -p 1342Listarea și gestionarea procesului cu comandă superioară
Cu comanda de sus, puteți afișa o vizualizare în timp real a proceselor de sistem care rulează. Afișează procesele în funcție de utilizarea procesorului. Puteți sorta coloana în funcție de dvs. Comanda de sus oferă, de asemenea, câteva informații despre sistemul dvs., cum ar fi cât timp funcționează sistemul sau câți utilizatori sunt atașați la sistem și câte procese rulează, cât de mult CPU și RAM sunt utilizate și o listă a fiecăruia proces.
Tastați partea de sus a comenzii pentru a enumera procesele care rulează.
[e-mail protejat]: ~ $ topSarcini: 291 în total, 1 alergat, 290 dormit, 0 oprit, 0 zombie
% CPU (s): 2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0
MiB Mem: 7880.6 în total, 1259.9 gratuit, 3176 folosit, 3444.4 buff / cache
MiB Swap: 2048.0 în total, 2048.0 gratuit, 0.0 folosit. 4091.8 folos Mem
PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
3241 jim 20 0 20.7g 33512 10082 S 1.7 4.2 0:54.24 crom
3327 jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 crom
2920 jim 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 crom
3423 jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 crom
3030 jim 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 crom
3937 jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 crom
1603 jim 20 0 825608 67532 40416 S 0.3 0.8 3:13.52 Xorg
1756 jim 20 0 4154828 257056 10060 S 0.3 3.2 5:53.31 gnome-s+
1898 jim 20 0 289096 29284 5668 S 0.3 0.4 1:06.28 fusuma
3027 jim 20 0 587580 14304 75960 S 0.3 1.8 9:43.59 crom
3388 jim 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 crom
3409 jim 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 crom
3441 jim 20 0 16.5g 156396 89700 S 0.3 1.9 0:25.70 crom
.. .croitor… .
De asemenea, puteți efectua unele acțiuni cu comanda de sus pentru a face modificări în procesele care rulează; aici este lista de mai jos.
- tu prin apăsarea „u” puteți afișa un proces rulat de un anumit utilizator.
- M prin apăsarea „M” puteți aranja mai degrabă folosirea RAM decât utilizarea procesorului.
- P apăsând pe „P” puteți sorta după utilizarea procesorului.
- 1 apăsând „1” comutați între utilizarea procesorului dacă există mai multe.
- R apăsând pe „R”, puteți face sortarea inversă.
- h apăsând „h” puteți merge în ajutor și apăsați orice tastă pentru a reveni.
Rețineți ce proces consumă mai multă memorie sau CPU. Acele procese care consumă mai multă memorie pot fi omorâte, iar acele procese care consumă mai mult CPU pot fi renunțate pentru a le da mai puțină importanță procesorului.
Ucideți un proces în partea de sus: presa k și scrieți ID-ul procesului pe care doriți să îl ucideți. Apoi tastați 15 sau 9 pentru a ucide normal sau imediat; de asemenea, puteți ucide un proces cu o comandă kill sau killall.
Renice un proces în partea de sus: presa r și scrieți PID-ul procesului pe care doriți să îl renunțați. Vă va cere să tastați PID-ul procesului și apoi valoarea nicing pe care doriți să o acordați acestui proces între -19 și 20 (-19 înseamnă cea mai mare importanță și 20 înseamnă cea mai mică importanță).
Listarea și gestionarea proceselor cu monitorul sistemului
Linux are un gnome de monitorizare a sistemului pentru a arăta procesele de rulare mai dinamic. Pentru a porni monitorul de sistem, apăsați tasta Windows și tastați monitorul de sistem, faceți clic pe pictograma acestuia și puteți vedea procesele în coloane. Făcând clic dreapta pe ele, puteți ucide, opri sau renice procesul.
Procesele de rulare sunt afișate cu conturi de utilizator în ordine alfabetică. Puteți sorta procesele după orice titlu de câmp, cum ar fi CPU, memorie etc., trebuie doar să faceți clic pe ele și vor fi sortate; de exemplu, faceți clic pe CPU pentru a vedea care proces consumă cea mai mare energie a procesorului. Pentru a gestiona procesele, faceți clic dreapta pe ele și selectați opțiunea pe care doriți să o faceți cu procesul. Pentru a gestiona procesul, selectați următoarele opțiuni.
- Proprietăți- afișează alte setări legate de un proces.
- Hărți de memorie- afișați hărți de memorie de sistem pentru a arăta ce bibliotecă și alte componente sunt utilizate în memorie pentru proces.
- Deschide fișierul- arată ce fișiere sunt deschise prin proces.
- Schimbați prioritatea- afișați o bară laterală din care puteți renisa procesul cu opțiunile de la foarte mare la foarte scăzut și personalizate.
- Stop- întrerupe procesul până când selectați să continuați.
- Continua- repornește un proces întrerupt.
- Ucide- Forța ucide instantaneu un proces.
Uciderea unui proces cu kill and killall
kill, iar comanda killall este utilizată pentru uciderea / încheierea unui proces de rulare. Aceste comenzi pot fi folosite și pentru trimiterea unui semnal valid către un proces în execuție, cum ar fi indicarea unui proces să continue, să termine sau să recitească fișierele de configurare etc. Semnalele pot fi scrise în ambele moduri prin numere sau după nume. Următoarele sunt câteva semnale utilizate în mod obișnuit.
Numărul semnalului Descriere
SIGHUP 1 Detectează semnalul de închidere pe terminalul de comandă.SIGINT 2 Interpretat de la tastatură.
SIGQUIT 3 Ieșiți de pe tastatură.
SIGILL 4 Instrucțiuni ilegale.
SIGTRAP 5 Este utilizat pentru urmărirea unei trape.
SIGABRT 6 este utilizat pentru avortarea semnalului de la avort (3).
SIGKILL 9 Este utilizat pentru trimiterea unui semnal de ucidere.
SIGTERM 15 Este utilizat pentru trimiterea unui semnal de terminare.
SIGCONT 19,18,25 Este utilizat pentru a continua un proces dacă este oprit.
SIGSTOP 17,19,23 Este utilizat pentru oprirea proceselor.
Diferite valori ale SIGCONT și SIGSTOP sunt utilizate în diferite sisteme de operare Unix / Linux. Pentru informații detaliate despre semnalele de tip man 7 terminal de semnal.
Utilizarea comenzii kill pentru trimiterea semnalului la proces prin PID.
Rețineți procesul către care doriți să trimiteți un semnal de ucidere. Puteți găsi ID-ul procesului (PID) prin ps sau prin comanda de sus.
PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND7780 jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 sus
Procesul de vârf consumă 33.3% din CPU. Dacă doriți să eliminați acest proces pentru a salva utilizarea procesorului, iată câteva modalități de a încheia acest proces cu comanda kill.
[e-mail protejat]: ~ $ kill 7780[protejat prin e-mail]: ~ $ kill -15 7780 sau $ kill -SIGTERM 7780
[protejat prin e-mail]: ~ $ kill -9 7780 sau $ kill -SIGKILL 7780
Utilizarea comenzii killall pentru a trimite semnale către un proces după nume.
Cu comanda killall, nu trebuie să căutați ID-ul procesului; puteți trimite un semnal de ucidere unui proces după nume, mai degrabă decât prin ID-ul procesului. De asemenea, poate ucide mai multe procese decât vrei dacă nu ești atent, e.g., „Killall chrome” va ucide toate procesele de crom, inclusiv cele pe care nu doriți să le ucideți. Uneori este util să ucizi procese cu același nume.
La fel ca comanda kill, puteți tasta semnalele după nume sau după numărul din comanda killall. Omoară orice proces de rulare cu comanda killall; trebuie doar să îi tastați numele și semnalul pe care doriți să îl trimiteți. e.g., trimiteți un proces de semnal kill firefox folosind comanda killall, scrieți comanda de mai jos.
[e-mail protejat]: ~ $ killall -9 firefoxsau
[e-mail protejat]: ~ $ killall SIGKILL chromeSchimbarea priorității procesului cu frumos și renice
Fiecare proces pe sistemul dvs. Linux are o valoare excelentă și este între -19 și 20. A decis ce proces va avea mai mult acces CPU în sistem. Cu cât valoarea frumosului este mai mică, cu atât un proces are mai mult acces la procesul CPU. Ca -16 valori frumoase au mai mult acces la CPU decât 18 valori frumoase. Numai un utilizator cu privilegii de root poate atribui o valoare negativă de nice. Un utilizator normal poate atribui valoarea „frumos” doar între 0 și 19. Un utilizator obișnuit poate atribui doar valori mai mari și pe propriile procese. Un utilizator root poate seta orice valoare frumoasă pentru orice proces.
Dacă doriți să oferiți un proces mai accesibil pentru utilizarea procesorului prin atribuirea valorii frumoase, tastați următoarea comandă.
[e-mail protejat]: ~ $ nice +3 cromȘi renice procesul
[e-mail protejat]: ~ $ renice -n -6 3612Concluzie
Iată ghidul de gestionare a sistemului Linux cu ps, top, lsof, pstree, pkilll, kill, killall, nice, renice etc. Unele procese consumă cea mai mare parte a procesorului și a memoriei RAM; a ști cum să le gestionezi mărește viteza și performanța sistemului și îți oferă un mediu mai bun pentru a rula toate procesele pe care le dorești mai eficient.