¿Monitor de proceso equivalente para Linux?

26

¿Existe un equivalente de Unix / Linux de Process Monitor , ya sea GUI o CUI?

Si hace la diferencia, estoy viendo Ubuntu, pero si hay un equivalente para otros sistemas (Mac, otras variantes de Linux como Fedora, etc.), entonces conocer cualquiera de esos también sería útil.

Editar:

Process Monitor es para monitorear las llamadas al sistema (como la creación de archivos o escrituras), mientras que Process Explorer es para monitorear el estado del proceso (que es como System Monitor). Estoy pidiendo lo primero, no lo último. :-)

Mehrdad
fuente

Respuestas:

12

El modo de espera de la consola para esto es top, pero hay alternativas como mi favorita htopque le brindan un poco más de flexibilidad de visualización y le permiten algunas operaciones más en los procesos.

Una vista menos interactiva que sea mejor para usar en scripts sería el psprograma y todos sus parientes.

Editar: en función de su pregunta aclarada, es posible que observe que stracecontrola las llamadas al sistema realizadas por un proceso determinado, incluidas todas las operaciones de lectura y escritura y las llamadas a funciones del sistema operativo. Puede activarlo en la línea de comando antes del programa que desea rastrear o adjuntar a un proceso en ejecución presionando sen un proceso seleccionado en htop.

Caleb
fuente
44
Creo que topes el equivalente de Process Explorer , no Process Monitor , ¿verdad?
Mehrdad
¿Qué tal si lo ejecutas y exploras la página del manual? Leí la lista de características que vinculaste con el monitor de proceso y parecía que htopcubría todos los detalles, excepto el monitoreo de la secuencia de arranque. A lo sumo podría ser activado en screen/ tmuxen algún momento parte del camino a través de un cylce arranque de Linux.
Caleb
A la luz de sus otros comentarios, también podría estar buscando strace, que puede activar htoppresionando sen un proceso o manualmente desde la línea de comandos cuando ejecuta algo o con una identificación de proceso.
Caleb
12

El abuelo de todos los monitores de procesos es top, y se llaman muchas herramientas de monitoreo del sistema top. Por ejemplo, hay iotopque mirar las E / S del disco, atoppara un montón de recursos del sistema, powertoppara el consumo de energía.

Si desea información más detallada, no se realiza un seguimiento de forma predeterminada. Para ver qué está haciendo un proceso en particular , recurra stracea él. Por ejemplo, si solo le interesan los accesos al sistema de archivos:

strace -s9999 -efile command_name    # trace a program during its whole execution
strace -s9999 -efile -p1234          # trace a running program with the given PID

stracees específico de Linux, pero otros sistemas tienen una herramienta similar: trussen Solaris, ktraceo dtracebajo * BSD, etc.

Para ver qué sucede con un archivo en particular o en un directorio o árbol de directorios en particular, use la función de inotify .

inotifywait -m .

Una vez más, la instalación es específica de Linux, pero la mayoría de los otros dispositivos tienen un sistema similar, por ejemplo, kqueue bajo * BSD y FAM (originalmente de SGI pero ahora disponible como API en muchos sistemas).

Para ver todas las llamadas del sistema en Linux, puede usar el subsistema de auditoría . Es relativamente reciente y no hay mucha literatura sobre el tema; busca auditctlo lee la auditctlpágina del manual . Hay un par de ejemplos en este sitio: seguimiento de accesos a archivos , seguimiento de la ejecución del proceso .

Gilles 'SO- deja de ser malvado'
fuente
¿Está seguro de que se refiere al equivalente de Process Monitor y no a Process Explorer ?
Mehrdad
@Mehrdad: Ya veo, me había ido por el nombre y la memoria de una herramienta que había usado en Windows (que en realidad es Process Explorer), y no por la descripción real. Siempre es peligroso pedir el equivalente de un programa en particular, mejor pedir un programa con ciertas características.
Gilles 'SO- deja de ser malvado'
Gracias. iotop -o -b -Pme muestra qué procesos están haciendo operaciones de E / S de disco
bartolo-otrit
8

Es posible que desee echar un vistazo a lsofy strace. El Monitor de procesos de Sysinternal es en realidad Filemon y Regmon combinados con algunas mejoras adicionales. El topcomando se parece más a Process Explorer.

Omega
fuente
4

Probablemente estés buscando sysdig

Por ejemplo:

sysdig -A -c echo_fds
Camiseta
fuente
3

Realmente llego tarde para responder esto, pero he comenzado un proyecto que tiene como objetivo hacer exactamente lo que estás buscando. Echa un vistazo aquí: https://github.com/alexandernst/monks

alexandernst
fuente
2

No he usado ese Process Monitor, pero por lo que puedo decir, es lo mismo que gnome-system-monitoren un sistema Gnome. Si usa KDE, probablemente tengan algo similar.

Keith
fuente
No, son diferentes. Process Monitor en realidad engancha las llamadas del sistema, no muestra la información del proceso. (Sin embargo, a lo que te refieres lo logra Process Explorer.)
Mehrdad,
Oh, bueno, usualmente uso la herramienta CLI vmstat para cosas así. Pero eso es todo el sistema, no por proceso.
Keith
1

dtrace4linux le permite rastrear algunos datos interesantes del núcleo. Aunque parece ser más poderoso que sysdig, desafortunadamente no se comporta tan bien.

Rui F Ribeiro
fuente