¿Cómo puedo ver qué procesos se están ejecutando?

21

Uso Ubuntu Server 10.10 y me gustaría ver qué procesos se están ejecutando. Sé que PostgreSQL se está ejecutando en mi máquina, pero no puedo verlo con los comandos topo ps, por lo que supongo que no muestran todos los procesos en ejecución. ¿Hay otro comando que muestre todos los procesos en ejecución o hay algún otro parámetro que pueda usar con topo pspara esto?

Jonas
fuente

Respuestas:

26

Desde la pspágina del manual:

-e Seleccionar todos los procesos. Idéntico a -A.

Por lo tanto, ps -emostrará todos los procesos. Las opciones comunes para "darme todo" son ps -elyo ps aux, este último es el estilo BSD. A menudo, las personas luego canalizan esta salida para grepbuscar un proceso, como en la respuesta de xenoterracide. Para evitar verse también grepen la salida, a menudo verá algo como:

 ps -ef | grep [f]oo

donde foo es el nombre del proceso que estás buscando.

Sin embargo, si está buscando un proceso en particular, le recomiendo usar el pgrepcomando si está disponible. Creo que está disponible en Ubuntu Server. Usar pgrepsignifica que evitas la condición de carrera mencionada anteriormente. También proporciona algunas otras características que requerirían greptrucos cada vez más complicados para replicarse. La sintaxis es simple:

pgrep foo

donde foo es el proceso que estás buscando. Por defecto, simplemente generará el ID de proceso (PID) del proceso, si encuentra uno. Consulte man pgreppara otras opciones de salida. La siguiente página me pareció muy útil:

http://mywiki.wooledge.org/ProcessManagement

Steven D
fuente
Me pregunto qué porcentaje de personas usan pssin conocer las banderas. Solo lo tiro auxsiempre; No tengo idea de lo que realmente controlan las banderas individuales
Michael Mrozek
3

has intentado ps aux | grep postgres? realmente debería aparecer si postgres se está ejecutando. Si no es así ... ¿cómo sabes que Postgres se está ejecutando?

(Nota: es una idea falsa común que es, ps -auxpero eso no es correcto)

xenoterracida
fuente
Gracias, ps auxfuncionó mejor, mostró alrededor de 70 procesos, mientras que psmostró solo dos. Sé que PostgreSQL se estaba ejecutando desde que vi que se inició al arrancar y se detuvo al apagar.
Jonas
@Jonas, algunos scripts de inicio están mal escritos. No les creas solo porque dicen que algo comenzó y se detuvo. Solo algunos consejos
xenoterracide
También hay pgreppara esto, que tiene el beneficio de nunca capturar su ps aux | grep postgrescomando en la lista de procesos y emitirlo
Michael Mrozek