SMJobRemove успешно, но инструмент plist и helper не удален
Я пытаюсь удалить привилегированный вспомогательный инструмент, установленный через SMJobBless
Я получаю положительное возвращаемое значение и никаких ошибок, но файлы в /Library/PrivilegedTools и /Library/LaunchDaemons не удаляются. Нужно ли удалять эти файлы самостоятельно?
Из документации я прочитал:
Возвращаемое значение true, если задание было успешно удалено, иначе false.
Я звоню следующее, чтобы удалить работу:result = SMJobRemove(kSMDomainSystemLaunchd, (__bridge CFStringRef)label, _authRef, YES, &errorCF);
2 ответа
Спасибо ятобен, у этой темы был ответ, который я искал.
Как и следовало ожидать, вы должны удалить файлы самостоятельно или использовать следующее: (взято с форумов Apple dev:)
SMJobRemove является эквивалентом "launchctl remove". То есть он удаляет задание из launchd, но никак не влияет на диск. Таким образом, задание будет перезагружено при следующем запуске. Чтобы обойти это, вы должны либо удалить plist самостоятельно, либо с помощью fork/exec'ing "launchctl unload -w".
Вы видели https://github.com/brenwell/SMJobBless-Demo/blob/master/Uninstall.sh? Это было очень полезно для меня.