GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi di comandi da 20 ps per monitorare i processi Linux

Il monitoraggio del sistema Linux è una delle attività più importanti che qualsiasi utente Linux o amministratore di sistema deve svolgere 24 ore su 24 per garantire che il sistema funzioni senza intoppi ed evitare colli di bottiglia. Linux viene fornito con alcuni strumenti integrati che possono aiutarti a monitorare il tuo sistema. Uno di questi è ps (stato processi ) comando che monitora in modo specifico i processi in esecuzione e tra le altre metriche associate ai processi come percentuale CPU e memoria utilizzazione. Il comando ps legge il filesystem /proc che è basato sulla RAM o un file system virtuale.

In questa guida, ci addentriamo più a fondo e ti presentiamo 20 dei comandi ps più comunemente usati.

1) Processo di quotazione nella shell

La forma più semplice del comando ps in Linux, elenca i processi in esecuzione nella shell corrente. Questo può essere illustrato di seguito.

[[email protected] ~]$ ps
 PID TTY          TIME CMD
 1437 pts/0    00:00:00 bash
 1465 pts/0    00:00:00 ps
[[email protected] ~]$

Definiamo alcuni termini:

  • PID:questo è l'ID processo.
  • TTY:si riferisce al terminale che ha avviato e controlla il processo.
  • TIME:questo è il tempo/tempo cumulativo per cui è stato eseguito un processo.
  • CMD:nome del comando che ha avviato il processo.

2) Processi di elenco associati a un terminale

Questo è molto simile all'elenco dei processi nella shell. Per elencare i processi associati al terminale attualmente in esecuzione, eseguire il comando:

[[email protected] ~]$ ps -T
  PID  SPID TTY          TIME CMD
 1437  1437 pts/0    00:00:00 bash
13357 13357 pts/0    00:00:00 ps
[[email protected] ~]$

3) Visualizzazione di tutti i processi in esecuzione sul tuo sistema

Per avere una panoramica di tutti i processi in esecuzione sul tuo sistema Linux usa il -A flag come mostrato:

[[email protected] ~]$ ps -A

In alternativa, puoi anche utilizzare il –e flag come mostrato. Otterrai comunque risultati simili.

[[email protected] ~]$ ps -e

4) Visualizzazione dell'output in formato BSD

Per elencare i processi in formato BSD, esegui il comando

$ ps -aux

Analizziamo il comando:

Il flag -a indica a ps di visualizzare tutti i processi di tutti gli utenti. Questo, tuttavia, esclude i processi associati a un terminale specifico.

Il flag -u implica un formato orientato all'utente. Fornisce informazioni più dettagliate associate ai processi in esecuzione.

Il flag x elenca i processi che di solito vengono avviati all'avvio del sistema così come i processi in background.

Dove:

  • USER – Specifica l'utente che esegue il processo
  • PID – Questo è l'ID processo del processo
  • %CPU – Questa è la percentuale di utilizzo della CPU di ciascun processo
  • %MEM – Questa è la % della memoria fisica utilizzata dal processo
  • VSZ – Questa è la dimensione della memoria virtuale di ogni processo in kilobyte
  • RSS:questa è la dimensione/quantità di memoria fisica utilizzata da un processo
  • STAT:indica il codice di stato del processo, ad esempio S (inattivo), Z (zombie) e R (in esecuzione)
  • START – Questa è l'ora in cui il processo ha iniziato a essere eseguito

5) Visualizzazione dell'output in formato UNIX

Se desideri visualizzare l'output in formato UNIX , esegui il comando ps con una combinazione di -ef bandiere

[[email protected] ~]$ ps -ef

Il flag -e dice al comando ps di elencare tutti i processi

Il flag -f (formato completo) indica al comando ps di elencare informazioni dettagliate sui processi.

Definiamo alcuni nuovi termini dallo screenshot:

  • PPID:si riferisce all'ID processo padre
  • C:si riferisce alla %CPU o alla percentuale di utilizzo della CPU di un processo.
  • STIME:indica l'ora in cui è stato avviato il comando. Come START

6) Visualizzazione dell'output in un formato definito dall'utente

In un output di formato definito dall'utente, hai il potere di decidere quali colonne visualizzare. La bandiera-o determina quali colonne verranno visualizzate durante l'esecuzione del comando ps. Nell'esempio seguente, solo il PID e AVVIO vengono visualizzate le colonne. Assicurati di notare che le opzioni delle colonne sono passate in minuscolo nel comando ps.

[[email protected] ~]$ ps -efo pid,start
  PID  STARTED
 1437 21:55:28
13632 01:41:16
[[email protected] ~]$

7) Mostra i processi in esecuzione di un utente

A volte, potresti voler scoprire i processi associati a un determinato utente, quindi per ottenere ciò, usa il -u flag come mostrato”

$ ps -u utente

O

$ ps -u uid

Ad esempio, per visualizzare i processi associati all'utente 'Linuxtechi' eseguire il comando:

$ ps -u linuxtechi

In alternativa, è possibile utilizzare l'uid dell'utente (ID utente). Puoi ottenere l'ID utente eseguendo il comando:

$ id utente

[[email protected] ~]$ id linuxtechi
uid=1000(linuxtechi) gid=1000(linuxtechi) groups=1000(linuxtechi),10(wheel)
[[email protected] ~]$

Dall'output sopra, possiamo vedere chiaramente che l'uid per l'utente 'linuxtechi' è 1000. È quindi possibile utilizzare il comando ps e l'uid per trovare i processi associati all'utente.

$ ps -u 1000

Per l'utente root, esegui il comando

$ ps -u root

Allo stesso modo, puoi controllare usando l'uid dell'utente root il cui valore è 0

$ ps -u 0

8) Visualizzazione dei processi di gruppo

Elencare i processi di gruppo è simile all'elencare i processi utente. Puoi elencare un processo di gruppo usando il comando ps passando il nome del gruppo specificando l'ID del gruppo.

Ad esempio, per visualizzare i processi associati al gruppo 'apache' eseguire il comando:

$ ps -fG

$ ps -fG apache

In alternativa, puoi passare l'ID del gruppo (gid) invece del nome del gruppo. puoi ottenere i GID dal file /etc/group.

Ad esempio, in questo caso, l'ID del gruppo per Apache è 48. Quindi, invece di specificare il nome del gruppo "apache ' è sufficiente specificare il GID n. 48.

$ ps -fG 48

9) Visualizzazione dei processi utilizzando PID e PPID

I processi Linux possono anche essere visualizzati utilizzando il PID (ID processo ) e il PPID (ID processo padre) . Il PPID si riferisce al PID del genitore di un processo.

Per elencare i processi per PID, esegui

$ ps -fp PID

Ad esempio, per elencare i processi associati al PID 1286 eseguire il comando:

[[email protected] ~]$ ps -fp 1286
UID        PID  PPID  C STIME TTY          TIME CMD
postfix   1286  1285  0 03:49 ?        00:00:00 pickup -l -t unix -u
[[email protected] ~]$

Per elencare i processi in base al PPID, esegui

$ ps -f –ppid

Ad esempio, per elencare i processi di proprietà di PPID 31903 eseguito

$ ps -f --ppid 31903

10) Ricerca di un PID utilizzando il nome del processo

Per la maggior parte del tempo di solito non conosciamo il PID del nome del processo. Per farlo, usa il flag-C come mostrato

$ ps -C

[[email protected] ~]$ ps -C firefox
  PID TTY          TIME CMD
 1446 tty2     00:00:04 firefox
[[email protected] ~]$

11) Visualizzazione del processo tramite TTY

Se desideri filtrare i processi in base al valore tty, usa il -t flag . Ad esempio, per visualizzare i processi collegati a tty1, eseguire il comando ps come mostrato:

$ ps -ft tty1

12) Stampa dell'albero dei processi

Un albero dei processi mostra come i processi sono collegati in un sistema Linux. I processi senza genitori si collegano al sistema tramite init o systemd. La stampa richiede l'utilizzo del seguente formato:

$ ps -e --forest

13) Filtra un processo in base al processo del thread

Per filtrare un processo utilizzando il thread del processo, utilizza il flag-L come mostrato,

$ ps -L 1446

14) Monitoraggio dei processi in tempo reale

È possibile utilizzare l'utilità watch per monitorare le informazioni statiche su un processo. L'uscita viene riprodotta ogni secondo come mostrato di seguito

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head'

Il comando stampa le colonne pid,ppid,cmd,%mem e %cpu e monitora le statistiche ogni singolo secondo mentre ordina l'%utilizzo della CPU in ordine decrescente.

15) Risoluzione dei problemi di prestazioni della macchina Linux

Quando il tuo sistema è lento o sovraccarico, puoi identificare il processo più in esecuzione in base al massimo utilizzo di CPU e memoria

Esegui il seguente comando ps per elencare i processi principali che stanno consumando memoria elevata,

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head

Esegui il seguente comando ps per elencare i processi principali che stanno consumando una CPU elevata,

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

L'output di esempio del comando ps precedente sul mio sistema è riportato di seguito,

16) Eliminazione dei processi che non rispondono

Il comando ps può consentire di uccidere le applicazioni che non rispondono o qualsiasi processo che sta monopolizzando CPU e RAM. Per fare ciò, devi trovare il PID di quella particolare applicazione usando il comando:

$ ps -A | grep -i stress

Una volta trovato il PID del processo, puoi terminarlo usando il comando kill, l'esempio è mostrato di seguito,

$ kill -9 2583 2584

17) Elenca tutti i PID di tutte le istanze di processo

Puoi elencare tutti i PID associati a un processo utilizzando la sintassi:

$ ps -C -o pid=

Ad esempio, per scoprire i PID associati al server Web httpd esegui:

$ ps -C httpd -o pid=

18) Visualizza la durata dell'esecuzione dei processi

Per mostrare da quanto tempo i processi sono in esecuzione, esegui il comando:

$ ps -eo comm,etime,user

Usa il comando ps di seguito per sapere da quanto tempo è in esecuzione un particolare processo,

$ ps -o tempo -p

Supponiamo di voler conoscere il processo di MySQL

[[email protected] ~]$  ps -C mysqld -o pid=
 3807
[[email protected] ~]$
[[email protected] ~]$ ps -o etime -p 3807
    ELAPSED
   01:13:56
[[email protected] ~]$

19) Elenca i processi figlio di un processo

Per stampare o elencare i processi figlio di un processo, usa -C flag nella sintassi seguente:

$ ps -C

Ad esempio, per elencare i processi figlio associati al processo httpd, esegui

[[email protected] ~]$ ps -C httpd
  PID TTY          TIME CMD
31911 ?        00:00:00 httpd
31918 ?        00:00:00 httpd
31919 ?        00:00:00 httpd
31920 ?        00:00:01 httpd
31921 ?        00:00:01 httpd
31922 ?        00:00:01 httpd
[[email protected] ~]$

20) Filtraggio dell'output del comando ps utilizzando grep

Per ottenere risultati specifici nel comando ps , puoi reindirizzare l'output allo strumento di utilità grep e fornire i criteri di ricerca.

Ad esempio , per cercare o restringere il processo php, esegui il comando:

$ ps -ef | grep php

Abbiamo elencato i primi 20 comandi ps comunemente usati per elencare e monitorare i processi in esecuzione sul tuo sistema Linux. Questi comandi funzioneranno su tutte le distribuzioni Linux e ti daranno sicuramente una panoramica dei processi in esecuzione sul tuo sistema e ti aiuteranno a determinare quali stanno sovraccaricando le tue risorse di CPU e RAM. Hai trovato questa guida perspicace? Sentiti libero di mettere mi piace e condividerlo sulle tue piattaforme di social media. Il tuo feedback è molto gradito.

Leggi anche :25 esempi di comandi principali per monitorare le prestazioni dei server Linux


Linux
  1. comando Linux ps

  2. 7 Esempi di comandi Linux df

  3. 8 Esempi di comandi TR Linux

  4. Esempi di comandi rm in Linux

  5. ps Esempi di comandi in Linux

Comando PS Linux con esempi

15 semplici esempi di comandi TOP su Linux per monitorare i processi

10 esempi di comando Linux ss per monitorare le connessioni di rete

Comando Linux ps – 20 esempi di vita reale

Esempi di comandi id in Linux

Comando Linux fusore con esempi