You should take a look at the asuser and bootstrap commands of launchctl. The last one will only work on 10.11.
> On 17 Jul 2015, at 17:11, Per Olofsson <per.olofs...@gu.se> wrote: > > When an installer package contains a LaunchAgent we typically try to load it > into any current user sessions, to avoid requiring a logout or restart. > Through trial and error we've arrived at using launchctl bsexec with chroot > in a loop like this: > > if [[ "$3" == "/" ]]; then > # Load agent for all logged in users. > for pid_uid in $(ps -axo pid,uid,args | grep -i "[l]oginwindow.app" | awk > '{print $1 "," $2}'); do > pid=$(echo $pid_uid | cut -d, -f1) > uid=$(echo $pid_uid | cut -d, -f2) > if [[ "$uid" -ne 0 ]]; then > launchctl bsexec "$pid" chroot -u "$uid" / launchctl unload > "$AGENT" > launchctl bsexec "$pid" chroot -u "$uid" / launchctl load "$AGENT" > fi > done > fi > > It's not perfect but it got the job done, but it looks like it breaks in the > 10.11 betas if SIP is enabled (launchctl exits with code 5). Is there a > better/proper/supported way of loading LaunchAgents for users in a background > script running as root? > > -- > Per Olofsson, IT-service, University of Gothenburg > > _______________________________________________ > 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