In informatica 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:
- lo stile POSIX, tipicamente disponibile sui sistemi riconducibili a UNIX System V, tra cui Solaris e HP-UX;
- lo stile BSD, dei sistemi riconducibili a BSD, tra cui FreeBSD, OpenBSD, NetBSD, DragonFly BSD e macOS.
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]- ^ (EN) ps, in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 31-05-2008.
- ^ (EN) Frequently Asked Questions about procps, su procps.sourceforge.net. URL consultato il 01-06-2008 (archiviato dall'url originale il 13 maggio 2008).
Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) ps, in NetBSD Manual Pages. URL consultato il 31-05-2008 (archiviato dall'url originale il 4 marzo 2016).
- (EN) ps, in FreeBSD Man Pages. URL consultato il 31-05-2008.
- (EN) ps [collegamento interrotto], 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 macOS Man Pages. URL consultato il 31-05-2008.