[launchd-dev] launchctl - LAUNCHD_SOCKET
Quinn
eskimo1 at apple.com
Mon Apr 19 02:47:16 PDT 2010
At 13:02 -0700 6/4/10, Eric Long wrote:
>What is the proper way to start the missed job for a given user from my
>daemon?
There really isn't a good, supported solution to this problem. Check
out the following post from this list's archives:
<http://lists.macosforge.org/pipermail/launchd-dev/2010-February/000741.html>
It explains the overall issue and the various sub-optimal solutions.
If you still have questions after reading this, please post them and
I'll pick things up from there.
>Looking at the man page for launchctl I see an environment variable named
>LAUNCHD_SOCKET. My guess is that even though I'm launching the task while
>the euid is set to the correct user, its still not executing in the user
>context.
That's correct. And LAUNCHD_SOCKET won't help because launchctl uses
a combination of both sockets and Mach bootstrap namespaces to talk
to the correct launchd. This is necessary because of foibles in Mac
OS X (you can't transfer a Mach port over a socket, and you can't
transfer a socket over a Mach port). We plan to fix this issue
properly in the long term but, for the moment, at which point the
launchctl-to-launchd communications story will be easier to
understand. However, this doesn't make things easier right now.
S+E
--
Quinn "The Eskimo!" <http://www.apple.com/developer/>
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
More information about the launchd-dev
mailing list