Mac启动守护程序运行时在重启期间启动时从不调用应用程序委托

时间:2018-01-23 01:36:21

标签: macos cocoa launchd nsapplication nsapplication-delegate

我正在处理作为启动守护程序管理的Mac OS X服务。它没有任何GUI,但它的结构是与NSApplicationMain一起运行的Cocoa应用程序。

似乎即使没有GUI,也存在一个问题 - 在终端窗口中通过launchctl启动时一切正常,但是在启动进程时系统重启时我确定一旦调用了NSApplicationMain()这个过程陷入困境。应用程序委托方法applicationDidFinishLaunching:永远不会被调用(这是我们初始化服务的地方)。还没有记录错误,NSApplicationMain()也没有返回。

我已经梳理了Launch Services docs,但我没有看到任何提及此问题,也没有找到任何说明非GUI NSApplication运行时需要登录或窗口服务器的信息。

任何人都有这方面的经验,知道一个常见的问题或有一个明确的答案是否有可能在启动时启动基于非GUI NSApplication的启动服务?

1 个答案:

答案 0 :(得分:0)

看起来这与Bootstrap名称空间问题有关,可能属于这个已经问过的问题(由于某些原因,当我搜索stackoverflow以获取相关术语时,结果没有出现在结果中)

Drawbacks of building a background-only COCOA app as a launch daemon?