processes unix process control
Managementul proceselor în Unix:
În Unix, toate instrucțiunile din afara nucleului sunt executate în contextul unui proces.
Un proces este o secvență de instrucțiuni și fiecare proces are un bloc de date controlate asociate acestuia. Procesele pot fi manipulate într-un mod similar cu modul în care fișierele pot fi manipulate.
De exemplu, cum ar fi „ls” este poate fi folosit pentru a vedea lista de fișiere, „ps” poate fi folosit pentru a vedea lista de procese.
Video Unix # 23:
În acest tutorial, vom acoperi ce informații legate de proces sunt stocate și vom descrie, de asemenea, câteva comenzi care sunt utilizate pentru a gestiona procesele. De asemenea, vom oferi o scurtă descriere a modului în care scripturile de comandă pot fi depanate.
Ce veți învăța:
Informații despre proces Unix
Tabelul de procese conține informații despre toate procesele care rulează în prezent. Scopul principal al acestui tabel este de a gestiona eficient toate procesele care rulează.
care este cel mai bun downloader de muzică pentru pc
Notă: Ca sistem de operare multitasking și multi-utilizator, Unix va avea multe procese care rulează în același timp.
Tabelul conține informații precum:
- ID proces
- Codul procesului părinte
- Starea proceselor
- Utilizarea procesorului
Procesele din Unix trec prin diferite stări în funcție de circumstanțe diferite. Modificările de stare pot fi declanșate de faptul dacă un proces trebuie să aștepte finalizarea unei operații de citire sau scriere, sau când un alt proces mai urgent trebuie să aibă șansa de a rula.
Comenzi de control al proceselor
Există o serie de comenzi disponibile pentru revizuirea și manipularea proceselor. Comanda „ps” poate fi utilizată pentru a vizualiza informațiile despre starea procesului.
Comanda | ps - oferă informații despre toate procesele care rulează în prezent. |
---|---|
Sintaxă comună | $ ps [OPȚIUNI] |
Exemplul 1 | $ ps Oferă informații despre proces, inclusiv PID, numele terminalului, ora creării și numele proceselor. |
După cum sa discutat într-un tutorial anterior, procesele pot fi clasificate ca prim-plan, fundal sau daemon. Când o comandă este executată de la terminal, aceasta rulează normal în prim-plan. Pentru a rula un proces în fundal, poate fi utilizat butonul „&” de la sfârșitul comenzii.
Exemplu:
$ grep “how” file1 > file2 &
Această comandă va căuta liniile care conțin modelul „cum” și va stoca ieșirea în fișier2. Dacă fișierul1 este destul de mare, este posibil să dorim să continuăm cu alte acțiuni și să executăm această comandă în fundal. Cu „&” la final, această comandă va rula ca un proces în fundal.
Este posibil să suspendați un proces de prim-plan folosind comanda ‘^ Z’. Această comandă mută procesul de prim-plan curent într-o stare suspendată în fundal. De acolo, procesul poate fi împins fie pentru a relua în fundal folosind comanda ‘bg’, fie poate fi readus în prim-plan folosind comanda ‘fg’.
Fiecare proces este, de asemenea, asociat cu o prioritate. Aceasta este utilizată pentru a se asigura că sistemul de operare este capabil să aloce destul timp pentru diferite sarcini de procesare. Comanda „frumos” poate fi utilizată pentru a reduce prioritatea unui proces și astfel a fi „drăguță” față de celelalte procese, adică
$ frumos
Această linie va rula comanda specificată la o prioritate mai mică - în mod implicit, prioritatea va fi redusă cu 10. Comanda preia și un parametru care poate fi utilizat pentru a utiliza un nivel diferit de „frumusețe”.
Exemplu:
$ nice -20 ls
Această comandă rulează „ls” cu prioritatea redusă cu 20.
De asemenea, este posibilă creșterea priorității cu o „simpatie” negativă. Cu toate acestea, acest lucru are nevoie de permisiunea superutilizatorului.
Când un terminal sau o sesiune de conectare este închisă, acesta trimite semnalul SIGHUP pentru a procesa copii. În mod implicit, acest semnal va determina terminarea proceselor copil. Comanda „nohup” poate fi utilizată pentru a permite comenzilor să ruleze în continuare chiar și atunci când sesiunea de conectare este terminată.
Exemplu:
$ nohup soft file1 > file2
Cu această comandă, sortarea fișierului1 și procesul de salvare în fișierul2 vor continua chiar dacă ne-am deconectat de la sistem.
Comanda „ucide” poate fi utilizată pentru a termina oricare dintre procese în funcție de permisiuni.
Exemplu:
$ kill [options]
Această comandă va încheia un proces cu ID-ul procesului. PID-ul unui proces poate fi obținut folosind comanda „ps”.
Această comandă „la” este utilizată pentru a executa comenzi la o anumită dată și oră în viitor.
Exemplu:
$ at 8pm sort file1>file2
Depanare Unix
Unix oferă o serie de mecanisme care vă ajută să găsiți erori în scripturile de comandă. Aceste mecanisme pot fi utilizate pentru a vizualiza o urmă a ceea ce se execută, adică secvența în care sunt executate comenzile. Urmarea poate fi utilizată pentru a înțelege și a verifica logica și controlul fluxului scriptului.
=> set -v
modul detaliat: Setarea acestei opțiuni înainte de a rula o comandă va asigura că comanda care va fi executată este tipărită pe stdout înainte de a fi executată efectiv.
=> set -x
modul de urmărire a execuției: Setarea acestei opțiuni va afișa fiecare comandă pe măsură ce este executată împreună cu argumentele sale.
=> set -n
modul fără executare: Setarea acestei opțiuni afișează orice erori fără a rula efectiv nicio comandă.
Consultați următorul nostru tutorial pentru a afla mai multe despre Script Shell avansat.
Lectură recomandată
- Comenzi de control al proceselor Unix precum Ps și Top (Partea C)
- Comenzi Unix: Comenzi Unix de bază și avansate cu exemple
- Comenzi de procesare a textelor Unix: filtre Unix cu exemple
- Tutorial Unix Pipes: Pipe în programarea Unix
- Mai multe comenzi Unix Filter și Awk, Sed în procesarea textului
- Argumente de linie de comandă în scriptul Shell Unix cu exemplu
- Tutorial UNIX pentru începători (peste 20 de videoclipuri de instruire aprofundate Unix)
- Cum se compară două fișiere în Unix: comenzi de comparare a fișierelor