首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个PID监听给定的mach端口

哪个PID监听给定的mach端口
EN

Stack Overflow用户
提问于 2012-02-19 16:04:34
回答 3查看 2.7K关注 0票数 7

我的应用程序接收mach IPC消息,并为调用者返回应答。我有mach调用者port(msgh_remote_port),我想知道调用者的PID。我能在OSX上通过mach端口找到一个监听特定mach端口的PID吗?

EN

回答 3

Stack Overflow用户

发布于 2012-02-20 05:09:51

mach端口并不直接与进程相关联,而是与任务相关联。然后将该任务与bsd流程结构相关联。要查询任务的端口,可以使用mach_port_names函数。要获得所有打开的mach端口,请迭代所有任务并使用上面提到的函数。

另一种方法是使用procfs文件系统。procfs文件系统是在fuse文件系统之上实现的,需要在系统上手动安装。它是一个开源的解决方案。一旦安装了procfs文件系统,就可以通过访问文件/proc/proc-id/ task /ports来查询任务的端口。看看http://osxbook.com/book/bonus/chapter11/procfs/吧。

票数 3
EN

Stack Overflow用户

发布于 2012-02-22 23:06:04

Stack Overflow用户

发布于 2017-08-03 02:14:07

有三种方法可以在不使用kext的情况下完成此操作:

  • 启动all打印系统(或其他域)
  • lsmp -a (没有端口名称,只有ids)
  • procexp所有端口| grep the_service_name_you_want

(procexp是http://NewOSXBook.com/tools/procexp.html)的一个附加工具

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9347665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档