macOS`ps`提供了某些XPC服务的捆绑包标识符而不是路径

时间:2018-11-14 20:06:11

标签: macos xpc launch-services

我的macOS应用程序可以启动一个匿名的助手应用程序,该应用程序使用Apple documentation中所述的Apple服务管理框架在其Contents/Library/LoginItems中提供。有趣的是,当我请求unix ps程序为我提供命令/路径时,对于此帮助程序,它将提供包标识符。示例:

jk$ ps -x -o command
...
com.mycompany.MyAgent
...

-c上使用ps选项时,它给出的答案都是相同的。

因为我的应用程序有几种版本和版本,每个版本都包含不同的帮助程序,并且由于用户可能具有多个安装,并且由于Launch Services有时出于奇怪的行为,出于自我测试和诊断的目的,我希望获得正在运行的帮助程序包或可执行文件的路径。

为什么ps却给出了包标识符?如何获得路径?

1 个答案:

答案 0 :(得分:1)

程序可以a)重写argv指向的内存及其指向的字符串,和/或b)调用setprogname()

我似乎还记得setprogname()不会不会影响ps的输出,但是重写argv会影响。不过,我可能会倒退。我知道Wine does both并影响ps看到的命令。