Please *do not* shell out to launchctl. It's better to keep using the
deprecated SM functions than to run launchctl. Sorry, but replacements are not
There isn't presently API for a system-wide LaunchDaemon to open a Mach IPC or
XPC connection to a LaunchAgent, which I'd guess is closer to what you'd really
like to do? This would be a good enhancement request, please file one! Radars
from developers are always good ammunition for trying to schedule our
development time. (Coincidentally, now is a very good time for this particular
Another approach is for the LaunchAgents to add a LaunchEvent (man xpc_events)
for a notifyd (man notify_post) notification. When the daemon wishes for an
agent to start, it will post a notification; the LaunchEvent will start agents
(in all the running graphical user sessions) in response to the notification;
the agents will all check in with the daemon over MIG or XPC when their
xpc_event handler fires; and the daemon will ask the appropriate agent to
launch a process in the graphical user session. Combined with Pressured Exit
aka idle-exit aka Sudden Termination, this would allow your agents to run only
when they are needed without worrying about loading/removing their plists.
> On Oct 18, 2016, at 08:32, Graham Miln <graham.m...@gmail.com> wrote:
> In macOS 10.12's ServiceManagement/ServiceManagement.h the following
> functions are marked as deprecated since macOS 10.10:
> - SMJobSubmit
> - SMJobRemove
> - SMCopyAllJobDictionaries
> The header mentions replacements will be provided by libxpc. Are replacements
> available or on the way?
> I have a system wide daemon that would like to programmatically launch a
> process in a graphical user session. At the moment, our LaunchAgents managed
> helper process is always running. Ideally, it would be good to launch and
> exit the helper on-demand.
> I believe this can now be done with `launchctl bootstrap|bootout gui/<uid>`
> on the command line. Should the daemon call out to the launchctl tool?
> Kind regards,
> launchd-dev mailing list
launchd-dev mailing list