Tengo una aplicación de servidor que enlaza un socket de archivo unix en /var/run/appsocket
.
Tengo varios clientes que se conectan a este socket de archivos Unix, y quiero poder determinar qué PID está conectado a este socket de archivos Unix.
Lo que he intentado:
sudo lsof /var/run/appsocket
Muestra lo siguiente:
appserver 101 appuser 6u unix 0x5d3497ad372af941 0t0 / var / run / appsocket
appserver 101 appuser 9u unix 0x5d3497ad3aa380a9 0t0 / var / run / appsocket
Esto muestra qué proceso creó el socket del archivo unix, pero no el que lo está utilizando. Si enumero los archivos abiertos de mi aplicación cliente, veo que está usando el identificador de archivo 0x5d3497ad372af941 (de la lista anterior).
He intentado usar varias soluciones de aquí , pero nada funcionó.
Estoy usando lsof 4.89 y -E
no es compatible por alguna razón.
¿Cómo puedo establecer esta conexión entre el identificador de archivo y el proceso que lo abrió?
EDIT
sudo lsof /var/run/appsocket | awk '{print $6}' | uniq | xargs -I {} sh -c "sudo lsof -U | grep {}" | awk '{print $1}' | uniq
Hace el truco, pero no es óptimo en absoluto ...