Ứng dụng của tôi nhận được thông báo IPC mach và trả về câu trả lời cho người gọi. Tôi có người gọi mach port(msgh_remote_port)
và tôi muốn biết PID
của người gọi. Tôi có thể tìm thấy trên OSX bằng cổng mach a PID
muốn nghe cổng mach cụ thể không?PID nào lắng nghe trên cổng máy đã cho
Trả lời
Cổng mach không được liên kết trực tiếp với quy trình, mà thay vào đó là với tác vụ. Nhiệm vụ sau đó được liên kết với cấu trúc quy trình bsd. Để truy vấn các cổng của một tác vụ, bạn có thể sử dụng hàm mach_port_names. Để có được tất cả các cổng mach mở lặp qua tất cả các nhiệm vụ và sử dụng chức năng được đề cập ở trên.
Cách tiếp cận khác là sử dụng hệ thống tệp procfs. Hệ thống tập tin procfs được cài đặt trên hệ thống tập tin cầu chì và cần được cài đặt thủ công trên hệ thống. Nó là một giải pháp mã nguồn mở. Một khi hệ thống tập tin procfs được cài đặt, bạn có thể truy vấn các cổng của một tác vụ bằng cách truy cập tập tin/proc/proc-id/task/ports. Hãy xem http://osxbook.com/book/bonus/chapter11/procfs/.
Cảm ơn, tôi tìm thấy ở đây là cách để làm điều đó - https://web.archive.org/web/20120907161143/http://robert.sesek.com/thoughts/2012/1/debugging_mach_ports.html
Ba cách bạn có thể làm điều này mà không có một kext:
- hệ thống launchctl in (hoặc tên miền khác)
- lsmp -a (không có tên cổng, chỉ cần id)
procexp tất cả các cổng | grep the_service_name_you_want
(procexp là một add on cụ từ http://NewOSXBook.com/tools/procexp.html)
- 1. Tại sao DHCP client lắng nghe trên cổng 68?
- 2. Làm thế nào để có được cổng mà một quá trình lắng nghe?
- 3. Python: Nghe trên hai cổng
- 4. Làm thế nào để thay đổi HTTP cổng mà Play2 đang lắng nghe trên
- 5. Xác định quá trình pid đang nghe trên một cổng nhất định
- 6. Node.js + Express: Ứng dụng sẽ không bắt đầu lắng nghe trên cổng 80
- 7. Tại sao đang lắng nghe trên cổng với Netcat không làm việc
- 8. Lắng nghe ACTION_SCREEN_OFF
- 9. Trình lắng nghe chrome.webRequest.onAuthRequired
- 10. TcpListener: Làm thế nào để lắng nghe trên cổng cụ thể trên tất cả các giao diện?
- 11. Hai quy trình lắng nghe cùng một cổng trong Windows 7 như thế nào?
- 12. Dịch vụ WCF có thể lắng nghe cùng một cổng như IIS như thế nào?
- 13. Nghe nhiều cổng từ một máy chủ
- 14. Làm thế nào để làm cho Fiddler lắng nghe tất cả các IP
- 15. Lắng nghe cử chỉ trên tiện ích Ứng dụng
- 16. Nghe trên TCP và UDP trên cùng một cổng
- 17. Lắng nghe sự kiện nhấp chuột trên ListView
- 18. Phát triển cho hành động "Lắng nghe" mới trong Android
- 19. Nhiều quy trình nghe trên cùng một cổng?
- 20. ExtJS Lưới - Click lắng nghe sự kiện
- 21. Làm thế nào để xác định giao diện eth máy chủ thử nghiệm Django nên lắng nghe trên?
- 22. nginx không nghe cổng 80
- 23. Đường dẫn ứng dụng và cổng nghe
- 24. Cách boost.asio khám phá cổng nào là ứng dụng máy chủ của tôi đang nghe?
- 25. Lắng nghe phát sóng udp với thư viện tăng cường
- 26. Nghe cho TCP và UDP yêu cầu trên cùng một cổng
- 27. Không thể lắng nghe sự kiện toàn cầu trong jQuery
- 28. Lắng nghe các sự kiện trong UIWebView (iOS)
- 29. Lắng nghe tất cả các sự kiện trong Symfony 2
- 30. Trong C# làm thế nào tôi có thể nghe một cổng COM (Serial) đã được mở?