16 jan 2015 kl. 13:21 skrev Piotr Panasewicz <piotr.panasew...@mac.com>:
> 
> Seems I will encounter the same issues I am having now with listening on 
> localhost or socket port option.
> 
> In my current implementation the agent sometimes starts as the second logged 
> in user via fast user switching (so both sessions are GUI sessions and active 
> at the time). So if I have an agent (with plist inside /Library/LaunchAgents, 
> so it will work for each user logged in) monitoring localhost or the specific 
> socket port, for which user the agent will run? Because both sessions are 
> active and have GUI. How will I communicate with the one I want if the IPC 
> between my app and the agent is base on one socket port 9977? If I run my app 
> as User A I want the service to run only for the User A, not User B, or both.

A unix domain socket listener can identify the UID of the connecting peer by 
using getpeereid() or LOCAL_PEERCRED. You can use this with a privileged 
listener which forks and executes tasks on behalf of the connecting peer, but I 
would not recommend going down that route unless you're comfortable writing 
privileged code. NSXPCConnection is a lot less work and secure by default.

-- 
Per Olofsson, IT-service, University of Gothenburg

_______________________________________________
launchd-dev mailing list
launchd-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/launchd-dev

Reply via email to