On 2013 Aug 16, at 08:33, NuSkooler <nuskooler@gmail.com> wrote:
… daemon … occasionally needs to display UI to users … more than just notifications
I would say that you should write a little app (.app) to do that, and your daemon should launch it as needed. If this is for Mac OS X 10.7 or later, you should consider XPC. Someone who knows more about XPC than I do please correct me and elaborate.
there are times such as in our update process that we need to stop all agents -> update them -> restart them
In other words, you need to do in a program what a sysadmin can do "manually" using the launchctl(1) command-line tool. I have some old code in a public repository at github.com which has methods which do this brute force, by invoking launchctl via NSTask. But before you do something like that, I vaguely recall reading somewhere that there may now be proper API for this. But I can't find any reference to it. Does anyone know of such an API in Mac OS X, or was I just dreaming? Jerry P.S. You didn't mention sandboxing. I think the install/update/start/stop LaunchAgents stuff is unlikely to be allowed if you're sandboxed.