it-swarm.it

Come posso vedere quali processi sono in esecuzione?

Uso Ubuntu Server 10.10 e vorrei vedere quali processi sono in esecuzione. So che PostgreSQL è in esecuzione sul mio computer ma non riesco a vederlo con i comandi top o ps, quindi presumo che non mostrino tutti i processi in esecuzione. C'è un altro comando che mostrerà tutti i processi in esecuzione o ci sono altri parametri che posso usare con top o ps per questo?

22
Jonas

Dalla pagina man ps:

-e Seleziona tutti i processi. Identico a -A.

Pertanto, ps -e visualizzerà tutti i processi. Le opzioni comuni per "dammi tutto" sono ps -ely o ps aux, quest'ultimo è in stile BSD. Spesso, le persone quindi indirizzano questo output a grep per cercare un processo, come nella risposta di xenoterracide. Per evitare di vedere grep stesso nell'output, vedrai spesso qualcosa come:

 ps -ef | grep [f]oo

dove foo è il nome del processo che stai cercando.

Tuttavia, se stai cercando un processo particolare, ti consiglio di usare il comando pgrep se è disponibile. Credo che sia disponibile su Ubuntu Server. L'uso di pgrep significa evitare le condizioni di gara sopra menzionate. Fornisce anche alcune altre funzionalità che richiederebbero repliche sempre più complicate di grep. La sintassi è semplice:

pgrep foo

dove foo è il processo che stai cercando. Per impostazione predefinita, emetterà semplicemente l'ID processo (PID) del processo, se ne trova uno. Vedi man pgrep per altre opzioni di output. Ho trovato molto utile la seguente pagina:

http://mywiki.wooledge.org/ProcessManagement

26
Steven D

hai provato ps aux | grep postgres? dovrebbe davvero apparire se Postgres è in esecuzione. In caso contrario ... come fai a sapere che Postgres è in esecuzione?

(nota: è un malinteso comune che è ps -aux ma non è corretto)

3
xenoterracide