Cydia包preinst / postinst无法重新加载启动守护进程

时间:2013-04-19 18:22:21

标签: ios debian jailbreak cydia launch-daemon

我正在为越狱iOS编写一个应用程序,其中包括UI应用程序和启动守护程序。我将启动守护进程设置为UI应用程序项目的子项目。

一切都运行得很好,除了我无法卸载软件包然后在安装过程中重新加载启动守护程序,或者chown启动守护程序plist文件到root:wheel

mainproject/subproject/layout/DEBIAN/preinst我有以下代码:

#!/bin/sh
chown root:wheel /Library/LaunchDaemons/com.plistname.plist
launchctl unload /Library/LaunchDaemons/com.plistname.plist 2>&1 > /dev/null

mainproject/subproject/layout/DEBIAN/postinst

#!/bin/sh
chown root /Library/LaunchDaemons/com.plistname.plist
launchctl load /Library/LaunchDaemons/com.plistname.plist

如果我卸载软件包并重新安装它,则会创建plist,但它由502:staff拥有,如果我手动运行{{1},我就看不到syslog中看到的消息}和launchctl unload

知道可能出现什么问题吗?

1 个答案:

答案 0 :(得分:1)

事实证明我的问题是子项目中的preinstpostinst脚本没有运行。我不知道这是否应该运行debian软件包,或者它只是theos处理子项目的方式中的一个错误,但我能够通过简单地将这些命令移动到preinst和{来解决它{1}}主项目的脚本。

这是不理想的,因为从逻辑上讲,它们属于子项目,但它有效。