ps (Unix)

Da Wikipedia, l'enciclopedia libera.

ps (abbreviazione dalla lingua inglese di process status, stato dei processi) è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che produce sullo standard output un elenco di informazioni sui processi al momento presenti nel sistema.

Le informazioni presentate si riferiscono all'istante in cui ps viene eseguito, e possono cambiare anche nel giro di pochi istanti. Per ottenere un elenco aggiornato periodicamente si può usare (se presente) il comando top.

Uso[modifica | modifica wikitesto]

La sintassi generale di ps è la seguente:

ps [opzioni]

Se non diversamente specificato, ps produce un elenco sintetico dei processi appartenenti all'utente che lo esegue e che hanno come terminale controllante lo stesso terminale da cui ps viene eseguito.

Esistono tradizionalmente due stili di opzioni che è possibile specificare a ps:

I due stili sono mutuamente incompatibili, perché alcune opzioni dell'uno hanno un significato diverso nell'altro. Esistono tuttavia implementazioni di ps che li supportano entrambi[2], come ad esempio quella su GNU/Linux, ove si possono usare anche le opzioni stile BSD in maniera non ambigua omettendone il trattino iniziale (ad esempio "ps auxww").

Opzioni stile POSIX[modifica | modifica wikitesto]

Tra le opzioni principali vi sono:

-d
Mostra tutti i processi di tutti gli utenti, eccetto quelli che sono leader di sessione (tipicamente shell testuali).
-e
Mostra tutti i processi di tutti gli utenti.
-f
Visualizza le informazioni con un formato che le specifica tutte.
-l
Visualizza le informazioni usando un formato esteso.
-p elenco
Visualizza le informazioni relativamente ai processi aventi i PID specificati. Il parametro elenco è un elenco di PID separati da virgola (",") o da spazio (" ").
-o formato
Visualizza le informazioni usando il formato specificato. Il parametro formato è un elenco di parole chiave separate da virgola (",") o da spazio (" ") che specifica le informazioni da visualizzare.
-t elenco
Visualizza le informazioni relativamente ai processi aventi come terminale controllante i terminali indicati. Il parametro elenco è un elenco di identificativi di terminale separati (",") o da spazio (" ").
-u elenco
Visualizza le informazioni relativamente ai processi degli utenti indicati. Il parametro elenco è un elenco di UID o nomi utente separati da virgola (",") o da spazio (" ").

Formati di output[modifica | modifica wikitesto]

Tramite l'opzione -o è possibile specificare un elenco di parole chiave che indicano quali informazioni visualizzare per ciascun processo.

Alcune di esse sono normalmente visualizzate col formato predefinito, o con i formati delle opzioni -l e -f.

Parola chiave Titolo colonna Opzioni Informazioni mostrate
ruser RUSER il real UID del processo, o il suo nome corrispondente se la larghezza della colonna lo consente
user USER -l (solo numerico), -f l'effective UID del processo, o il suo nome corrispondente se la larghezza della colonna lo consente
rgroup RGROUP il real GID del processo, o il suo nome corrispondente se la larghezza della colonna lo consente
group GROUP l'effective GID del processo, o il suo nome corrispondente se la larghezza della colonna lo consente
pid PID tutte il PID del processo
ppid PPID -l, -f il parent PID del processo, ovvero il PID del suo processo padre
pgid PGID il PGID del processo, ovvero il PID del processo leader del gruppo di processi di cui il processo fa parte
pcpu  %CPU la percentuale di tempo di CPU che il processo ha usato di recente
vsz VSZ dimensione del processo in termini di KiB di memoria virtuale usata
nice NI -l valore di nice del processo
etime ELAPSED tempo trascorso dall'avvio del processo, espresso in minuti e secondi, preceduti da ore e da giorni se necessario
time TIME tutte tempo cumulativo di utilizzo della CPU, espresso in ore, minuti e secondi, preceduti dal numero di giorni se necessario
tty TT tutte indicazione del terminale controllante del processo
comm COMMAND nessuna, -l nome del comando (senza parametri)
args COMMAND -f nome del comando seguito dai parametri (eventualmente troncato)

Alcune informazioni sono visualizzate solo con il formato predefinito dall'opzione -l:

Titolo colonna Informazioni mostrate
F numero che indica eventuali flag associati al processo.
S lo stato del processo (R per running, S per sleeping e Z per zombie (vedi processo zombie)
ADDR indirizzo in memoria del processo
SZ dimensioni in blocchi (di dimensione specifica per la piattaforma, in genere 4 o 8 KiB) del processo
WCHAN l'evento per cui il processo è in attesa

Opzioni stile BSD[modifica | modifica wikitesto]

Tra le opzioni principali vi sono:

-a
Mostra anche i processi degli altri utenti, e non del solo utente che ha avviato ps.
-c
Mostra solo il nome del comando senza i parametri.
-e
Mostra anche le variabili d'ambiente dei processi.
-j
Usa un formato con informazioni utili alla gestione dei job della shell testuale.
-l
Usa un formato esteso.
-m
Ordina l'elenco dei processi in base al loro utilizzo di memoria.
-o formato
Visualizza le informazioni usando il formato specificato. Il parametro formato è una lista di parole chiave separate da una virgola (",") o uno spazio (" "). Per un elenco delle parole chiave si rimanda alla documentazione del singolo sistema operativo.
-p pid
Mostra le informazioni relative al processo che ha il PID specificato.
-r
Ordina l'elenco dei processi in base al loro utilizzo di CPU.
-t tty
Mostra le informazioni relative ai processi che hanno tty come terminale controllante.
-U utente
Mostra le informazioni relative ai processi dell'utente specificato.
-u
Usa un formato con informazioni utili per l'analisi dell'utilizzo di risorse (memoria e CPU) dei processi.
-v
Usa un formato con informazioni utili per l'analisi dell'utilizzo di memoria dei processi.
-w
Se specificata una volta sola, tronca le linee a 132 caratteri. Se specificata più volte, non tronca le linee.
-x
Mostra anche i processi che non hanno un terminale controllante.

Esempi[modifica | modifica wikitesto]

Opzioni stile POSIX[modifica | modifica wikitesto]

Mostra un elenco esteso di tutti i processi:

ps -ef

Mostra un elenco dei processi dell'utente alice:

ps -u alice

Opzioni stile BSD[modifica | modifica wikitesto]

Mostra un elenco esteso di tutti i processi (nei sistemi GNU/Linux occorre omettere il trattino prima delle opzioni):

ps -auxww

Mostra un elenco dei processi dell'utente alice:

ps -U alice

Note[modifica | modifica wikitesto]

  1. ^ (EN) ps in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 31-05-2008.
  2. ^ (EN) Frequently Asked Questions about procps. URL consultato il 01-06-2008.

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  • (EN) ps in NetBSD Manual Pages. URL consultato il 31-05-2008.
  • (EN) ps in FreeBSD Man Pages. URL consultato il 31-05-2008.
  • (EN) ps in OpenBSD Manual Pages. URL consultato il 31-05-2008.
  • (EN) ps in Dragonfly On-Line Manual Pages. URL consultato il 31-05-2008.
  • (EN) ps in Mac OS X Man Pages. URL consultato il 31-05-2008.
informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica