Hi Graham, 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 yet available.
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 API request.) 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, > > Graham > _______________________________________________ > launchd-dev mailing list > launchd-dev@lists.macosforge.org > https://lists.macosforge.org/mailman/listinfo/launchd-dev _______________________________________________ launchd-dev mailing list launchd-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/launchd-dev