it-swarm-es.com

¿Hay alguna manera de interceptar la comunicación de interprocesis en UNIX / Linux?

Para interceptar/analizar el tráfico de la red, tenemos una utilidad llamada Wireshark .

¿Tenemos una utilidad similar para interceptar toda la comunicación de interproceso entre dos procesos en UNIX/Linux?

He creado algunos procesos en la memoria y necesito perfilar cómo se comunican entre sí.

15
Lazer

Esto mostrará lo que un proceso lee y escribe:

strace -ewrite -p $PID

No es una salida limpia (muestra líneas como: escribe (#,)), pero funciona! (y es de una sola línea: D) También puede disgustar el hecho, que los argumentos se abrevian. Para controlar ese parámetro use -s que establece la longitud de longitud máxima de las cadenas que se muestran.

Atrapa todas las corrientes, por lo que es posible que desee filtrar eso de alguna manera.

Puedes filtrarlo:

strace -ewrite -p $PID 2>&1 | grep "write(1"

muestra solo el descriptor 1 llamadas. 2> & 1 es redirigir a STDERR a STDOUT, ya que Strace escribe a STDERR de forma predeterminada.

6
naugtur