2013-04-19 12 views
1

UI 애플리케이션과 시작 데몬을 모두 포함하는 jailbroken iOS 용 앱을 작성하고 있습니다. UI 응용 프로그램 프로젝트의 하위 프로젝트로 시작 데몬을 설정했습니다.Cydia 패키지 preinst/postinst가 시작 데몬을 다시로드 할 수 없습니다.

패키지를로드 해제 한 다음 설치 프로세스의 일부로 시작 데몬을 다시로드하거나 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에 : 나는 패키지를 제거하고 그것의 PLIST가 만들어를 다시 설치하지만,이 502:staff 소유인지

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

을, 그리고 나는 수동으로 launchctl unloadlaunchctl load을 실행하면 syslog에서 볼 수있는 메시지가 표시되지 않습니다.

어떤 생각이 잘못되었을 수 있습니까?

답변

1

서브 프로젝트의 preinstpostinst 스크립트가 실행되고 있지 않은 것으로 나타났습니다. 데비안 패키지가 어떻게 동작해야하는지, 아니면 서브 프로젝트를 다루는 방식의 버그 일 뿐이라는 것을 나는 잘 모르겠다. 그러나 그 명령을 메인에 대한 preinstpostinst 스크립트로 옮기면 문제를 해결할 수 있었다. 계획.

논리적으로 하위 프로젝트에 속하기 때문에 이상적이지는 않지만 작동합니다.