Articles

comando ps aux e comando ps spiegato

Questo tutorial spiega come utilizzare il comando ps in Linux. Fornisce anche 10 + esempi pratici del comando ps. Scopri come leggere l’output del comando ps aux in dettaglio.

Una breve introduzione del comando ps

Il comando ps (process status) è uno dei comandi più usati in Linux. Di solito viene utilizzato per ottenere le informazioni più dettagliate su un processo specifico o tutti i processi. Ad esempio, viene utilizzato per sapere se un particolare processo è in esecuzione o meno, chi sta eseguendo quale processo nel sistema, quale processo utilizza memoria o CPU più elevata, per quanto tempo è in esecuzione un processo, ecc.

LAB Setup

Per la pratica, avviare alcune applicazioni e mantenerle in esecuzione. Cambia l’account utente e ripeti lo stesso processo.

configurazione di laboratorio per la pratica del comando ps

Ora supponiamo che tu sia un amministratore di sistema e che tu voglia sapere cosa sta succedendo nel sistema.In questo caso, è possibile utilizzare il comando ps per ottenere le informazioni richieste.

Utilizzando il comando ps

Apri terminale ed esegui il comando ps

comando ps senza opzione e argomento

Senza alcuna opzione e argomento, il comando ps mostra solo il processo in esecuzione sotto l’account utente connesso dal terminale corrente.

Potresti chiederti perché il comando ps sta mostrando due processi mentre non abbiamo eseguito alcun processo da questo terminale finora.

Bene process primo processo mostra il processo in cui questo terminale è aperto. Questo processo rimane aperto, fino all’apertura del terminale.

Secondo processo mostra l’ultimo comando eseguito in questo terminale.

Specificare le opzioni con il comando ps

Il comando ps accetta le opzioni in tre stili.

Stile BSD UNIX: – In questo stile, le opzioni sono fornite senza alcun trattino iniziale (come”aux”).

AT & T Stile Unix: – In questo stile, le opzioni sono fornite con un trattino principale (come “-aux”).

Stile GNU Linux: – In questo stile, le opzioni sono fornite con doppi trattini iniziali (come “sort sort”).

Sebbene il comando PS accetti le opzioni nello stile mix, dovresti sempre usare un solo stile per specificare le opzioni.

Esempi di base del comando ps

Per stampare tutti i processi in esecuzione nel sistema, utilizzare uno dei seguenti comandi.

$ps –A$ps -e

comandi ps-A e ps-e

Le opzioni A ed e forniscono una panoramica riassuntiva dell’esecuzione processes.To stampa la panoramica dettagliata, usa le opzioni f (full format) e F (extra full format) con queste opzioni.

comandi ps-ef e ps-af

Per visualizzare lo stesso output in stile Unix BSD, utilizzare le opzioni “aux”.

comando ps aux

Il comando “ps aux” è il comando più usato dagli amministratori Linux. Prima di passare all’esempio successivo, comprendiamo in dettaglio le opzioni utilizzate in questo comando.

ps aux command options

a:- Questa opzione stampa i processi in esecuzione da tutti gli utenti.

u: – Questa opzione mostra la colonna utente o proprietario in output.

x:- Questa opzione stampa i processi che non sono stati eseguiti dal terminale.

Collettivamente le opzioni “aux” stampano tutto il processo in esecuzione nel sistema indipendentemente da dove sono state eseguite.

ps aux output del comando descrizione colonna
Colonna Descrizione
UTENTE account utente in cui questo processo è in esecuzione
PID ID di Processo di questo processo
%CPU tempo di CPU utilizzato da questo processo (in percentuale).
%MEM Memoria fisica utilizzata da questo processo (in percentuale).
VSZ Memoria virtuale utilizzata da questo processo (in byte).
RSS Resident Set Size, la memoria fisica non sostituibile utilizzata da questo processo (in KiB)
TTY Terminale da cui viene avviato questo processo. Punto interrogativo (?) segno rappresenta che questo processo non è avviato da un terminale.
STAT Stato del processo. Spiegato nella tabella successiva.
START ora di inizio e la data di questo processo
TEMPO tempo Totale di CPU utilizzato da questo processo
COMANDO comando, con tutti i suoi argomenti con cui è iniziato questo processo
ps aux stat codice descrizione
D sleep (di solito IO)
R esecuzione o runnable (sulla coda di esecuzione)
S passibile di sospensione (in attesa di un evento per completare)
T fermato dal segnale di controllo del lavoro
t fermato dal debugger durante il tracciamento
w paging (non valido dal 2.6.xx kernel)
x morto (non dovrebbe mai essere visto)
Z defunto (“zombie”), processo, terminata ma non raccolto da suo padre
< ad alta priorità (non è bello per gli altri utenti)
N bassa priorità (bello per gli altri utenti)
L ha pagine bloccato in memoria (in tempo reale e personalizzato IO)
s è un leader di sessione
l è multi-threaded (utilizzando CLONE_THREAD, come NPTL pthreads fare)
+ è nel gruppo di processi in primo piano
Punti chiave
  • L’utilizzo della CPU è espresso come percentuale di tempo trascorso in esecuzione durante l’intera durata di un processo.
  • I campi SIZE e RSS non contano alcune parti di un processo tra cui le tabelle delle pagine, lo stack del kernel, struct thread_info e struct task_struct.
  • SIZE è la dimensione virtuale del processo (codice+dati+stack).
  • I processi contrassegnati <defunct> sono processi morti (i cosiddetti “zombi”) che rimangono perché il loro genitore non li ha distrutti correttamente.
  • Se la lunghezza del nome utente è maggiore della lunghezza della colonna di visualizzazione, il nome utente verrà troncato.

10+ esempi pratici del comando ps

Per visualizzare tutti i processi in esecuzione sotto l’account utente root, utilizzare il seguente comando.

$ps -U root -u root

In questo comando:-

-U: – Selezionare il processo in base all’ID utente o al nome reale.

-u: – Seleziona il processo in base all’ID utente o al nome effettivo.

RUID (Real User ID) rappresenta il nome dell’utente mentre EUID (Effective User ID) descrive l’utente le cui autorizzazioni di accesso ai file vengono utilizzate dal processo.

ps-u-U comando

Per visualizzare tutti i processi in esecuzione da un account utente specifico, utilizzare il seguente comando.

$ps –U –u 

comando ps mostra tutti i processi in esecuzione in un singolo account utente

Per visualizzare tutti i processi in esecuzione in un determinato gruppo, utilizzare il seguente comando.

$ps –G 

Per una panoramica dettagliata, possiamo anche combinare l’opzione –G con l’opzione –F.

$ps –FG 

comando ps-fg

Per visualizzare tutti i processi nella gerarchia, possiamo usare il seguente comando.

$ps –A --forest

ps-A forest forest

Visualizzazione solo colonna specifica

Per impostazione predefinita il comando ps visualizza tutte le colonne. Se siamo interessati solo a colonne particolari, possiamo limitare l’output specificando i nomi delle colonne richiesti come argomenti.

Ad esempio, per visualizzare solo le colonne PID, USER e CMD, possiamo usare il seguente comando.

$ps –eo pid,user,cmd

ps visualizzazione colonna limitata

Trovare il processo che utilizza la memoria più alta

Per impostazione predefinita, il comando ps non ordina l’output. Impostando l’ordinamento su % MEM, possiamo trovare i processi che consumano memorie più elevate.

Per impostare l’ordinamento, viene utilizzata l’opzione sort sort=. Possiamo anche combinare questa opzione con altre opzioni per ottenere l’output più specifico.

Ad esempio, visualizziamo solo i campi specifici e ordiniamoli in base agli usi della memoria.

$ps –eo pid,user,%mem,cmd --sort=-%mem

uscita ps ordina per memoria usi

Limitazione dell’uscita

Per impostazione predefinita, il comando ps non limita il risultato in uscita.Se siamo interessati solo a conoscere i primi tre processi che consumano la memoria più alta, invece di visualizzare l’output del comando ps nel terminale possiamo reindirizzarlo al comando head.

Per impostazione predefinita, il comando head visualizza le prime 10 righe dalla sorgente fornita.Possiamo ignorare questo comportamento predefinito specificando i numeri di riga richiesti.

Per visualizzare solo i primi tre processi, possiamo usare l’opzione “-n 4” con il comando head.

ps limiting output

Per 3 risultati, fornire la cifra 4 come argomento. Come nell’output del comando ps, la prima riga è occupata dai titoli.

Trovare il processo che utilizza la CPU più alta

Proprio come abbiamo capito i processi che consumano più memoria,possiamo anche trovare i processi che consumano più CPU ordinando l’output in base alla colonna CPU.Ad esempio, il comando seguente stampa i primi 3 processi ordinati per utilizzo della CPU.

$ps –eo pid,user,%cpu,cmd –-sort=-%cpu | head –n 4

ps uscita ordina per cpu usi

Trovare il numero totale di processi in esecuzione da un utente

Per capire il numero totale di esecuzione di un processo da parte di un utente, utilizzare il seguente comando:

$ps –U –u | wc –l