La mia applicazione riceve i messaggi IPC del computer e restituisce le risposte per i chiamanti. Ho il chiamante mach port(msgh_remote_port)
e voglio sapere PID
del chiamante. Posso trovare su OSX tramite la porta mach uno PID
che ascolta per la porta del Mach specifico?Quale PID è in ascolto su una determinata porta Mach
risposta
La porta mach non è direttamente associata a un processo, ma invece a un'attività. L'attività è quindi associata alla struttura del processo bsd. Per interrogare le porte di un'attività è possibile utilizzare la funzione mach_port_names. Per ottenere tutte le porte mach aperte itera su tutte le attività e usa la funzione sopra menzionata.
Un approccio diverso è l'utilizzo del filesystem procfs. Il filesystem procfs è implementato sul filesystem del fusibile e deve essere installato manualmente su un sistema. È una soluzione open source. Una volta installato il filesystem procfs, è possibile interrogare le porte di un'attività accedendo al file/proc/proc-id/task/ports. Dai uno sguardo a http://osxbook.com/book/bonus/chapter11/procfs/.
Grazie, ho trovato qui il modo per farlo - https://web.archive.org/web/20120907161143/http://robert.sesek.com/thoughts/2012/1/debugging_mach_ports.html
Tre modi si può fare questo senza un kext:
- sistema di stampa launchctl (o un altro dominio)
- LSMP -a (nessun nome di porta, solo id)
procexp tutte le porte | grep the_service_name_you_want
(procexp è un add on strumento da http://NewOSXBook.com/tools/procexp.html)
- 1. Determinare il processo PID in ascolto su una determinata porta
- 2. In che modo boost.asio rileva su quale porta è in ascolto la mia app del server?
- 3. Ascolto su URL specifici anziché sulla porta
- 4. Ascolto della porta seriale su Delphi 7
- 5. Percorso applicazione e porta di ascolto
- 6. Scopri in quale istanza di porta Django è in esecuzione?
- 7. Trova PID del processo che utilizzano una porta su Windows
- 8. Messaggi porta Mach in Objective-C
- 9. Trova numero di porta dove HDFS è in ascolto
- 10. Perché è in ascolto sulla porta con Netcat non funziona
- 11. Traccia di routing per una determinata porta
- 12. Come cambiare la porta HTTP che Play2 è in ascolto
- 13. Perché il client DHCP è in ascolto sulla porta 68?
- 14. Come riscrivere/proxy un URI Apache in un'applicazione in ascolto su una porta/server specifici?
- 15. In nodejs, come posso controllare se una porta è in ascolto o in uso
- 16. Express e WebSocket ascolto sulla stessa porta
- 17. Come posso ottenere la porta su cui è in ascolto un servizio WCF?
- 18. Come si verifica se una porta TCP è già in ascolto?
- 19. Node.js Come ottenere l'indirizzo IP del server http in ascolto su una porta specifica
- 20. Quale porta usa httpclient?
- 21. Ruby: verifica se una porta è aperta
- 22. Come uccidere un processo su una porta su ubuntu
- 23. Quale porta utilizza AWS S3?
- 24. Come verificare se una determinata porta è aperta e non utilizzata?
- 25. TcpListener: ascolto su tutti gli indirizzi, incluso l'indirizzo IP GPRS
- 26. È possibile aprire PDF con Preview.app su una determinata pagina?
- 27. Come trovare una porta disponibile?
- 28. Come faccio a sapere quale porta seriale usare su Linux?
- 29. In Perl, come posso verificare da quale modulo è stata importata una determinata funzione?
- 30. a quale porta temporanea è associato InetSocketAddress java?