【发布时间】:2014-09-11 15:54:05
【问题描述】:
期望的场景是: 任务设置为每天凌晨 2 点运行,用户希望每天下午 6:00 运行任务。他启动了一个应用程序并对其进行了更改。
我已经成功创建了一个代理,它在每个给定的日历日期运行一个任务。但是我需要用户可以使用应用程序随意配置这些日期。是否可以以编程方式创建/启动/更新代理/守护程序以在启动下运行?如果是,我该怎么做?
【问题讨论】:
-
您是否遇到了应用沙盒问题?因为几年前的谷歌搜索结果正是这种没有沙盒和权利。无论如何它是fairly impossible with sandboxing
-
不知道有没有办法让通知在特定时间醒来?然后,您可以让您的应用程序在附件模式下激活并执行非 GUI 计划任务。我wrote a bunch about accessory mode here。拥有一个在沙盒环境中同时运行 GUI 和后台任务的可执行文件会让您的事情变得更容易。如果您想像在另一个问题中提到的那样使用核心数据,“帮助”应用程序会很痛苦。
-
Stevesliva,非常感谢您分享您的经验。具体来说,我的情况是需要使用来自存储的 CoreData 数据库(保存在 ~/Library/Application Support/[MyApp] 目录中)的动态/可更新参数运行后台任务。现在,我制作了一个命令行工具项目作为执行任务。我正在研究代理/守护进程的工作方式。我还没有弄清楚如何以动态方式正确链接 .plist 文件和 exec 文件。我目前的方法是尝试在 ~/Library/LauchAgents 中读取/写入 plist 文件,但它没有打开...
-
真正的问题是什么?是不是你的程序没有~/Library/LaunchAgents 目录的写权限?
-
嗨梅林,感谢您的回复。刚刚想出了如何让事情在这里工作。最后,真正的问题是我:我刚刚开始开发 OSX,很多事情对我来说还是未知数。我将 .list 文件放入 system/root 文件夹。
标签: macos cocoa daemon agent launchd