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 ...