Usando lsof per trovare quale processo è connesso ad un socket di file unix

3

Ho un'applicazione server che collega un socket di file unix su /var/run/appsocket .

Ho più client che si collegano a questo socket di file unix e voglio essere in grado di determinare quale PID è connesso a questo socket di file unix.

Quello che ho provato:

sudo lsof /var/run/appsocket

Visualizza quanto segue:

appserver 101 appuser 6u unix 0x5d3497ad372af941 0t0 /var/run/appsocket

appserver 101 appuser 9u unix 0x5d3497ad3aa380a9 0t0 /var/run/appsocket

Questo mostra quale processo ha creato il socket del file unix, ma non colui che lo sta usando. Se elenco i file aperti dal mio client dell'app, vedo che sta utilizzando il file handle 0x5d3497ad372af941 (dall'elenco sopra).

Ho provato a utilizzare diverse soluzioni da qui , ma non ha funzionato. Sto usando lsof 4.89 e -E non è supportato per qualche motivo.

Come posso creare questa connessione tra l'handle del file e il processo che l'ha aperto?

Modifica

sudo lsof /var/run/appsocket | awk '{print $6}' | uniq | xargs -I {} sh -c "sudo lsof -U | grep {}" | awk '{print $1}' | uniq

Il trucco, ma non è ottimale ...

    
posta Shai 23.01.2017 - 11:11
fonte

0 risposte

Leggi altre domande sui tag