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.
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
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
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.
Per visualizzare lo stesso output in stile Unix BSD, utilizzare le opzioni “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.
Per visualizzare tutti i processi in esecuzione da un account utente specifico, utilizzare il seguente comando.
$ps –U –u
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
Per visualizzare tutti i processi nella gerarchia, possiamo usare il seguente comando.
$ps –A --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
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
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.
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
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
Leave a Reply