macOS:在用户退出主应用程序后保持 XPC 服务(捆绑)运行

Posted

技术标签:

【中文标题】macOS:在用户退出主应用程序后保持 XPC 服务(捆绑)运行【英文标题】:macOS: Keep XPC Service (bundled) running after user quits main app 【发布时间】:2019-05-29 19:30:19 【问题描述】:

我的 macOS 应用程序中捆绑的 XPC 服务需要对父应用程序转储的文件进行一些后期处理工作,这很可能无法在应用程序的使用时间内完成。那么,有没有办法让 XPC 服务在用户退出主应用后也能继续运行呢?

【问题讨论】:

【参考方案1】:

您可以将其安装为启动守护程序(只要计算机打开,就在根上下文中运行)或启动代理(只要用户登录,就在用户上下文中运行)。

【讨论】:

【参考方案2】:

听起来您应该使用 launchd 的 WatchPathsQueueDirectories 功能。

只要被监视的任何路径发生变化,WatchPaths 就会启动作业

只要给定目录不为空,QueueDirectories 就会启动您的作业,并且只要这些目录不为空,它就会让您的作业继续运行

Apple's launchd documentation 涵盖了这两者。

【讨论】:

以上是关于macOS:在用户退出主应用程序后保持 XPC 服务(捆绑)运行的主要内容,如果未能解决你的问题,请参考以下文章

哪个处理程序在 macos xpc 中处理来自服务器的回复

非常简单的 macOS XPC

macOS XPC 服务未启动

在 Firebase 中退出应用程序后如何保持用户会话

如何禁用加载/激活 macOS xpc 服务?

我可以更改 XPC 服务的服务质量级别吗?