对于我的应用程序,我想创建一个后台进程,所以我做到了。
但是现在当尝试像这样在 postinst 中通过脚本加载进程时
/Library/LaunchDaemons/com.dev.app
.
我收到错误消息:
Could not open job overrides database at: /private/var/db/launchd.db/com.apple.launchd/overrides.plist: 2: No such file or directory
谁能帮我解决这个问题?
Debian postinst
脚本:
chown root:wheel /Library/LaunchDaemons/com.dev.app.plist
launchctl load /Library/LaunchDaemons/com.dev.app.plist
我也看到了这个错误信息。
如果您查看手机的文件系统(例如,使用 ssh
登录),我敢打赌您在 /private/var/db/launchd.db
中没有文件夹>.
仅仅因为 iOS 找不到该数据库文件并不意味着您的守护程序没有加载(或卸载)。在命令行(登录手机)使用ps -Aef
命令检查你的守护进程是否正在运行。
在您的守护进程的 plist 文件中(例如 /System/Library/LaunchDaemons/com.mycompany.mydaemon.plist
),您可以设置 Disabled 标志(但是,您可能不会)。 overrides.plist
文件可以覆盖守护程序的 plist 文件中的 Disabled 设置。
我的猜测是,这主要是 OS X 的一项功能,而不是 iOS 常用的功能,它共享大部分相同的代码库。
如果您真的觉得有必要删除该消息,看起来只需创建该目录即可删除它。因此,您可以在 postinst
脚本中添加类似的内容,然后调用 launchctl
:
mkdir -p /var/db/launchd.db/com.apple.launchd
关于ios - 为 iPhone 编写后台进程时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24014982/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |