|
PS(1) manual page
Table of Contents
ps - riporta lo stato dei processi
ps [- ] [lujsvmaxScewhrnu
] [txx ] [O [+ |- ]k1 [[+ |- ]k2 ...]] [pids ]
ci sono anche tre opzioni lunghe:
--sortX[+|-]key[,[+|-]key[,...]]
--help
--version
Ulteriori opzioni lunghe stanno
per essere introdotte...
ps mostra un'istantanea dei processi
correnti. Se si vuole un'aggiornamento ripetitivo dello stato, si usi top.
Questa pagina di manuale documenta la versione basata su /proc di ps,
o almeno ci prova.
Le opzioni sulla riga di comando possono opzionalmente
essere precedute da un '-', ma non è necessario. Ci sono inoltre alcune "opzioni
lunghe" in stile GNU; si veda più sotto per quelle.
- l
- formato lungo
- u
- formato utente: da il nome dell'utente e l'ora d'inizio
- j
- formato jobs:
pgid sid
- s
- formato signal
- v
- formato vm
- m
- mostra informazioni sulla
memoria (assieme con il flag p da il numero di pagine).
- f
- le righe di
comando sono mostrate in un albero
- a
- mostra anche i processi degli altri
utenti
- x
- mostra i processi che non controllano un terminale
- S
- aggiunge
il tempo di cpu dei figli e i page fault
- c
- nome comando dalla task_struct
- e
- mostra l'ambiente dopo la riga di comando e `+'
- w
- output largo: non
tronca le righe di comando per farle stare una per riga. Per essere precisi,
ogni w aggiunto metterà a disposizione un'altra riga di output per ogni
processo. Se lo spazio non è necessario non sarà usato. Si può arrivare
fino a 100 w.
- h
- non mostra l'header
- r
- solo processi running
- n
- output
numerico per USER e WCHAN.
- txx
- solo i processi controllati dalla tty
xx ; per xx è possibile usare il nome del device file in "/dev" o quel
nome togliendo tty o cu. Questo è il reverse heuristic che ps usa per mostrare
il nome abbreviato del tty nel campo TT , p.es. ps -t1.
- O[+|-]k1[,[+|-]k2[,...]]
- Ordina l'elenco dei processi secondo l'ordinamento multilivello specificato
dalla sequenza di short key della sezione SORT KEY , k1 , k2 , ... Esiste
un ordinamento di default specifico per ognuno dei diversi formati di
ps . Questi sono modificabili dall'ordinamento specificato dall'utente. Il
`+' è quasi opzionale, reitera solamente la direzione di default sulla key.
`-' rovescia la la direzione solo della key che precede. Come con t e pid
, l'opzione O deve essere l'ultima opzione di una riga di comando con un
solo argomento, ma le specifiche in argomenti successivi sono concatenate.
- pid
- Elenca solo i processi specificati; sono separati da virgole. La lista
deve essere data immediatamente dopo l'ultima opzione di una riga di comando
con un unico argomento, senza introdurre spazi, p.es. ps -j1,4,5. Liste specificate
negli argomenti seccessivi sono concatenate, p.es. ps -l 1,2 3,4 5 6 elenca
tutti i processi con pid da 1 a 6 in formato lungo. Se sono specificati
i pid, allora sono mostrati senza preoccuparsi d'altro. Se è specificato
una tty che corrisponde ai processi, questi sono mostrati senza preoccuparsi
d'altro. Queste due caratteristiche hanno priorità sui flag 'a' e 'x'.
Queste opzioni sono procedute da due trattini (hyphen).
- --sortX[+|-]key[,[+|-]key[,...]]
- Scegliere una key multi-letter dalla sezione SORT KEY . X può essere
un buon carattere di separazione. Per essere "GNU-ish" usare `='. Il `+' è veramente
opzionale in quanto la direzione di default è incrementando l'ordine numerico
e lessicografico. P.es.: ps -jax --sort=uid,-ppid,+pid
- --help
- Restituisce un messaggio
d'aiuto che riassume l'uso e da un lista delle sort key supportate. Tale
lista può essere più aggiornata di questa pagina di manuale.
- --version
- Mostra
la versione.
Si noti che i valori usati nell'ordinamento sono
i valori interni che ps usa e non i valori manipolati usati nei formati
dei campi d'uscita. Se qualcuno a voglia di scrivere speciali funzioni di
confronto per i valori manipolati, ... ;-)
CORTO LUNGO DESCRIZIONE
- c cmd nome semplice dell'eseguibile
- C cmdline
intera riga di comando
- f flags flag come nel
campo F del formato
- lungo
- g pgrp
process group ID
- G tpgid process group ID della
tty
- controllante
- j cutime user
time totale
- J cstime system time totale
- k utime
user time
- K stime system time
- m min_flt
numero di page fault secondari
- M maj_flt numero
di page fault principali
- n cmin_flt page fault secondari
totali
- N cmaj_flt page fault principali totali
- o
session session ID
- p pid process ID
- P
ppid parent process ID
- r rss dimensione
insieme residente
- R resident pagine residenti
- s size
dimensione memoria in Kbyte
- S share shared
page totali
- t tty il minor device number della tty
- T start_time ora in cui è partito il processo
- U uid
user ID number
- u user nome utente
- v
vsize dimensione totale della VM in byte
- y priority
priorità di kernel scheduling
-
- PRI
- Questo
è il campo counter della struct task. È in tempo in HZ del possibile timeslice
del processo.
- NI
- Valore dello unix nice standard; un valore positivo
indica un tempo di cpu minore.
- SIZE
- Dimensione della virtual image; dimensione
di text+data+stack.
- RSS
- Dimensione del set residente; Kbyte di programma
in memoria.
- WCHAN
- Nome della funzione del kernel sulla quale il processo
è in sleep, con `sys_' tolto dal nome della funzione. Se non esiste /etc/psdatabase,
è solo un numero esadecimale.
- STAT
- Informazione sulla stato del processo.
Il primo campo è R per runnable, S per sleeping, D per sleep non interrompibile,
T per stopped o traced, o Z per un processo zombie. Il secondo campo contiene
W se il processo non ha pagine residenti. Il terzo campo è N se il processo
ha un valore nice positivo (campo NI).
- TT
- tty controllante.
- PAGEIN
- Numero
di page fault principali (page fault che causano la lettura della pagina
dal disco, incluse le pagine lette dal buffer della cache).
- TRS
- Dimensione
del text residente.
- SWAP
- Kbyte (o pagine se è usato -p) sullo swap device.
- SHARE
- Shared memory.
Questo ps basto su proc funziona
leggendo i file nel filesystem proc, montato in /proc. Questo ps non ha
necessità di essere suid kmem o di avere particolari privilegi per girare.
Non date a questo ps nessun permesso particolare
Sarà necessario aggiornare
il file /etc/psdatabase lanciando /sbin/psupdate per ottenere informazioni
che abbiano senso dal campo WCHAN. Ciò dovrebbe essere fatto ogni volta
che si compila un nuovo kernel. Si dovrebbe anche lanciare 'ps' come root
ogni volta che i device tty nella directory "/dev" sono cambiati.
Come
procps-1.00, ps/top leggono direttamente System.map se è disponibile. Il percorso
di ricerca per la kernel address-to-symbol resolution è: $PS_SYSTEM_MAP
/boot/System.map-`uname -r`
/boot/System.map
/lib/modules/`uname -r`/System.map
/etc/psdatabase
/boot/psdatabase-`uname -r`
/boot/psdatabase,
/lib/modules/`uname -r`/psdatabase
Il membro used_math della
task_struct non è mostrato, in quanto crt0.s verifica se math è presente.
Ciò fa si che il math flag sia settato per tutti i processi, e quindi
è inutile.
I programmi swappati sul disco saranno mostrati senza gli argomenti
della riga di comando, e finché non è data l'opzione c, tra parentesi.
%CPU mostra la percentuale cputime/realtime. Non arriverà mai al 100% finché
non si è fortunati. É il tempo usato diviso per il tempo che il processo
è stato eseguito.
I campi SIZE e RSS non contano le page table e le task_struct
di un processo; questi sono almeno 12k di memoria che sono sempre residenti.
SIZE è la virtual size del processo (code+data+stack).
Per effettuare la
conversione tra numero del device e nome ps mantiene un file chiamato
"/etc/psdevtab" (aggiornato ogni volta che "/dev" diventa più nuova ed
è permesso l'aggiornamento). Se i permessi non permettono l'aggiornamento,
ogni chiamata di ps richiede una stat(2)
per ogni file nella directory
"/dev". Se "/dev" cambia spesso nel proprio sistema di dovrebbe lanciare
spesso ps come root. ;-) Potrei aggiungere un file di ripiego sotto $HOME
forzato da una richiesta di massa.
ps è stato scritto originariamente
da Branko Lankester (lankeste@fwi.uva.nl). Michael K. Johnson (johnsonm@sunsite.unc.edu)
lo ha riscritto per usare il filesystem proc, cambiando un po' di cose
nel processo. Michael Shields (mjshield@nyx.cs.du.edu) ha aggiunto l'argomento
pid. Charles Blake(cblake@bbn.com) ha aggiunto l'ordinamento multilivello,
la libreria in stile dirent, il database di conversione tra nome device
e numero mmaped, la ricerca binaria approssimata direttamente su System.map,
ha fatto una pulizia del codice e della documentazione ed è l'attuale manteiner
del pacchetto proc-ps.
Table of Contents
|