Ios 为iPhone编写后台进程时出错
对于我的应用程序,我想做一个后台处理,所以我做了。 但是现在,在PostInstant中尝试通过脚本加载进程时,如下所示Ios 为iPhone编写后台进程时出错,ios,objective-c,jailbreak,cydia,Ios,Objective C,Jailbreak,Cydia,对于我的应用程序,我想做一个后台处理,所以我做了。 但是现在,在PostInstant中尝试通过脚本加载进程时,如下所示 /Library/LaunchDaemons/com.dev.app 我收到错误消息: 无法在以下位置打开作业覆盖数据库:/private/var/db/launchd.db/com.apple.launchd/overrides.plist:2:没有此类文件或目录 谁能帮我把这个处理掉吗 编辑: Debianpostinst脚本: chown root:wheel/Libr
/Library/LaunchDaemons/com.dev.app
我收到错误消息:
无法在以下位置打开作业覆盖数据库:/private/var/db/launchd.db/com.apple.launchd/overrides.plist:2:没有此类文件或目录
谁能帮我把这个处理掉吗
编辑:
Debianpostinst
脚本:
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
)中,您可以设置禁用标志(但是,您可能不会)。overrides.plist
文件可以覆盖守护程序plist文件中禁用的设置
我的猜测是,这主要是OSX的一个特性,iOS并不常用,因为iOS共享很多相同的代码库
编辑:
如果您真的觉得有必要删除该消息,那么只需创建该目录就可以删除该消息。因此,在调用launchctl
之前,您可以在postinst
脚本中添加类似的内容:
mkdir-p/var/db/launchd.db/com.apple.launchd
向我们展示您的整个POSTNST脚本它是第1行。(chown root:wheel/Library/LaunchDaemons/com.dev.app.plist)第2行。(launchctl load/Library/LaunchDaemons/com.dev.app.plist)在列出正在运行的进程之后,您是对的,我知道我的进程正在成功运行,但为什么现在会发生这种情况,因为在我创建这样一个后台进程的6个月之前,它没有显示任何类似的错误。我也没有/var/db/launchd.db/com.apple.launchd。再次感谢您的帮助。iOS 7可能会有所不同。我现在没有一台旧的、越狱的iOS设备,但苹果可能已经更改了他们的代码,或者删除了iOS上不“需要”的额外目录,导致此消息开始出现。