Come posso vedere quali processi sono in esecuzione?


21

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 topo 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 topo psper questo?

Risposte:


26

Dalla pspagina man:

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

Pertanto, ps -everranno visualizzati tutti i processi. Le opzioni comuni per "dammi tutto" sono ps -elyo ps aux, quest'ultima è in stile BSD. Spesso, le persone quindi convogliano questo output per grepcercare un processo, come nella risposta di xenoterracide. Per evitare di vedere anche grepse 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 pgrepcomando se è disponibile. Credo che sia disponibile su Ubuntu Server. L'uso pgrepsignifica evitare le condizioni di gara sopra menzionate. Fornisce inoltre alcune altre funzionalità che richiederebbero complicazioni sempre più complicate grepda replicare. 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. Vedere man pgrepper altre opzioni di output. Ho trovato molto utile la seguente pagina:

http://mywiki.wooledge.org/ProcessManagement


Mi chiedo quale percentuale di persone usi pssenza conoscere le bandiere. Lo lancio auxsempre sempre; Non ho idea di cosa controllino effettivamente le singole bandiere
Michael Mrozek

3

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 -auxma non è corretto)


Grazie, ha ps auxfunzionato meglio, ha mostrato circa 70 processi, mentre ha psmostrato solo due. So che PostgreSQL era in esecuzione da quando ho visto che era stato avviato all'avvio ed è stato arrestato allo spegnimento.
Jonas,

@Jonas alcuni script init sono scritti male. Non crederli solo perché dicono che qualcosa è stato avviato e fermato. Solo qualche consiglio
xenoterracide,

C'è anche pgrepper questo, che ha il vantaggio di non catturare mai il ps aux | grep postgrescomando stesso nell'elenco dei processi e di emetterlo
Michael Mrozek
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.