I have been reading documentation and the SMJobBless example and various discussions on the Internet. My app now installs a privileged helper using SMJobBless()
, but the helper doesn't run at all.
The whole purpose of the helper is to load a kext, an important component of my app, whenever the application starts. I have seen examples showing that trying to connect to the helper through XPC will launch the helper, but I would like to keep my helper simple and dumb.
The API doc shows that there is a SMJobSubmit()
function. What exactly does it do? Can I use it to launch the privileged helper installed previously by SMJobBless()
?
I'm confused by all the terms around launchd
and the Service Management Framework
- for example, the "RunAtLoad" plist option controls "whether your job is launched once at the time the job is loaded". What exactly is "load" and "launch", and how are they related to "bless/install" and "submit"?