Quinn "The Eskimo!"
August 23, 2016 at 5:27 AM

Its sounds like you’re well on the way to a solution but I’m curious about the above. In general the `UserName` property for a launchd daemon is for role accounts. Putting a user account there is weird because what user do specify? If there are two users simultaneously logged in (via fast user switching, or truly simultaneously via screen sharing), surely one of them has to miss out.

Each daemon is named after its user: com.qrecall.switchboard.501, com.qrecall.switchboard.502, and so on. Each user connects only with its switchboard, and that switchboard only manages endpoints belonging to that user.

Again, the *only* reason this is installed as a system daemon is that I have root processes (executed from another system daemon) that have to connect with it, and the only mach services namespace that I can make that work is the system's.

James

P.S. I would be nice if the UserName launchd property would also accept a number and interpret it as a UID: <key>UserName</key><integer>501</integer>.