On 18 Jul, 2015, at 01:41, Per Olofsson <[email protected]> wrote: > 17 juli 2015 kl. 22:03 skrev Damien Sorresso <[email protected]>: >> >> Per, >> >> You should be able to use `launchctl asuser` for this purpose, eg. >> >> $ launchctl asuser launchctl unload /Path/to/plist >> $ launchctl asuser launchctl load /Path/to/plist > > Thanks, I got some replies off list as well, and asuser is pretty much a > drop-in replacement. It wasn't documented until 10.10, but > opensource.apple.com (yay!) confirms that it appeared in 10.7, so I guess it > should be safe to use even if you need to support older releases?
Yes, it is there. In Yosemite, we actually improved the fidelity of "asuser" substantially. The process adopts not only the proper bootstrap context but also the right exception context and audit session. >> On El Capitan, you can use `launchctl bootstrap` and `launchctl bootout`, eg. >> >> $ launchctl bootout user/$uid /path/to/plist >> $ launchctl bootstrap user/$uid /path/to/plist >> >> Note that both of these will load your job into the user's background >> session and *not* the user's GUI session. This means that your job must have >> a LimitLoadToSessionType value of "Background". >> >> If you want to load your agent into the user's GUI session, your approach >> below will work just fine, though I'm not sure why you're chroot(2)ing. > > We're basically cargo culting Quinn's reply here: > > https://lists.macosforge.org/pipermail/launchd-dev/2011-January/000890.html > > chroot -u just executes a command though, and you don't have to deal with the > shell as you have to if you use su, and as a bonus there's no quoting > involved. Oh I see. >> On El Capitan, you can modify the above commands to be >> >> $ launchctl bootout gui/$uid /path/to/plist >> $ launchctl bootstrap gui/$uid /path/to/plist >> >> if you want to load the job into the user's GUI session, and you won't have >> to go through any weird tricks like below. > > It'll be a few years before we can target 10.11+, but that's excellent! You could always conditionalize based on the availability of the bootout subcommand if you really wanted to use it I suppose. >> Before you ask, yes, we know it's a mess. Unfortunately, we're very >> constrained by 10+ years of legacy behavior. > > Don't I know it, but heck, it's cleaner and more explicit now than it's ever > been. Yeah, that was the intent. ;) -damien _______________________________________________ launchd-dev mailing list [email protected] https://lists.macosforge.org/mailman/listinfo/launchd-dev
