Android

Comanda ps în linux (procese de listă)

12.Linux для Начинающих - Процессы и Память: top, free, ps

12.Linux для Начинающих - Процессы и Память: top, free, ps

Cuprins:

Anonim

În Linux, o instanță de rulare a unui program se numește proces. Ocazional, atunci când lucrați pe o mașină Linux, poate fi necesar să aflați ce procese se execută în prezent.

Există o serie de comenzi pe care le puteți utiliza pentru a găsi informații despre procesele care rulează, ps , pstree și top sunt cele mai frecvent utilizate.

Acest articol explică modul de utilizare a comenzii ps pentru a lista procesele aflate în derulare și pentru a afișa informații despre aceste procese.

Cum se utilizează ps Command

Sintaxa generală a comenzii ps este următoarea:

ps

Din motive istorice și de compatibilitate, comanda ps acceptă mai multe tipuri diferite de opțiuni:

  • Opțiuni în stil UNIX, precedate de o singură opțiune în stil dash.BSD, utilizate fără opțiuni dash.GNU lungi, precedate de două liniuțe.

Se pot amesteca diferite tipuri de opțiuni, dar în unele cazuri particulare pot apărea conflicte, așa că este mai bine să rămâneți la un singur tip de opțiune.

Opțiunile BSD și UNIX pot fi grupate.

În cea mai simplă formă, atunci când este folosită fără nicio opțiune, ps va imprima patru coloane de informații pentru cel puțin două procese care rulează în shell-ul curent, shell-ul în sine și procesele care se execută în shell atunci când a fost invocată comanda.

ps

Ieșirea include informații despre shell ( bash ) și procesul care rulează în acest shell ( ps , comanda pe care ați tastat-o):

PID TTY TIME CMD 1809 pts/0 00:00:00 bash 2043 pts/0 00:00:00 ps

Cele patru coloane sunt etichetate PID , TTY , TIME și CMD .

  • PID - ID-ul procesului. De obicei, atunci când executați comanda ps , cea mai importantă informație pe care o caută utilizatorul este procesul PID. Cunoașterea PID vă permite să omorați un proces care funcționează defectuos. TTY - Numele terminalului de control pentru proces. TIME - Timpul procesual cumulat al procesului, afișat în minute și secunde. CMD - Numele comenzii care a fost folosită pentru a începe procesul.

Rezultatul de mai sus nu este foarte util, deoarece nu conține prea multe informații. Puterea reală a comenzii ps vine atunci când este lansată cu opțiuni suplimentare.

Comanda ps acceptă un număr mare de opțiuni care pot fi utilizate pentru a afișa un grup specific de procese și informații diferite despre proces, dar este nevoie doar de o mână în utilizarea de zi cu zi.

ps este cel mai frecvent utilizat cu următoarea combinație de opțiuni:

Formular BSD:

ps aux

  • Opțiunea spune ps să afișeze procesele tuturor utilizatorilor. Nu sunt afișate doar procesele care nu sunt asociate cu un terminal și procesele liderilor de grup. u înseamnă un format orientat către utilizator care oferă informații detaliate despre procese. Opțiunea x instruiește ps să enumere procesele fără un terminal de control. Acestea sunt în principal procese care sunt pornite la timpul de pornire și care se execută pe fundal.

Comanda afișează informații în unsprezece coloane etichetate USER , PID , %CPU , %MEM , VSZ , RSS , STAT , START , TTY , TIME și CMD .

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 19:47 0:00…

Am explicat deja etichetele PID , TTY , TIME și CMD . Iată o explicație a altor etichete:

  • USER - Utilizatorul care rulează procesul. %CPU - Utilizarea cpu a procesului. %MEM - Procentul dimensiunii setului rezident al procesului la memoria fizică a aparatului. VSZ - dimensiunea memoriei virtuale a procesului în KiB. RSS - Mărimea memoriei fizice pe care o folosește procesul. STAT - Codul stării procesului, cum ar fi Z (zombie), S (adormit) și R (rulare). START - Ora la care a început comanda.

Opțiunea f spune ps să afișeze o vedere arbore a proceselor părinte / copil:

ps auxf

Comanda ps vă permite, de asemenea, să sortați ieșirea. De exemplu, pentru a sorta ieșirea pe baza utilizării memoriei, ați utiliza:

ps aux --sort=-%mem

Forma UNIX:

ps -ef

  • Opțiunea -e indică ps să afișeze toate procesele. -f este o listă cu format complet, care oferă informații detaliate despre procese.

Comanda afișează informații în opt coloane etichetate UID , PID , PPID , C , STIME , TIME și CMD .

UID PID PPID C STIME TTY TIME CMD root 1 0 0 19:47 ? 00:00:01 /sbin/init root 2 0 0 19:47 ? 00:00:00…

Etichetele care nu sunt deja explicate au următorul sens:

  • UID - La fel ca USER , utilizatorul care rulează procesul. PPID - ID-ul procesului părinte. C - La fel ca %CPU , utilizarea procesorului de proces. STIME - La fel ca START , ora la care a început comanda.

Pentru a vizualiza doar procesele care rulează ca un utilizator specific, tastați următoarea comandă, unde linuxize este numele utilizatorului:

ps -f -U linuxize -u linuxize

Format definit de utilizator

Opțiunea o vă permite să specificați ce coloane sunt afișate atunci când executați comanda ps .

De exemplu, pentru a imprima informații numai despre PID și COMMAND , ar trebui să executați una dintre următoarele comenzi:

ps -efo pid, comm

ps auxo pid, comm

Utilizarea ps Cu alte comenzi

ps poate fi utilizat în combinație cu alte comenzi prin conducte.

ps -ef | less

Ieșirea comenzii ps poate fi filtrată cu grep . De exemplu, pentru a afișa doar procesul aparținând utilizatorului root pe care l-ați rula:

ps -ef | grep root

Concluzie

Comanda ps este una dintre cele mai des utilizate comenzi atunci când depanarea problemelor pe sistemele Linux. Are multe opțiuni, dar, de obicei, majoritatea utilizatorilor folosesc fie ps aux fie ps -ef pentru a aduna informații despre procesele de rulare.

Pentru mai multe informații despre ps , tastați man ps în terminalul dvs.

ps terminal