检测用户是否已登录或已注销

时间:2017-05-23 13:06:44

标签: objective-c macos login

我有一个启动守护程序,需要在OSX上的用户会话中生成一个托盘图标。我目前的问题是:有没有办法在用户登录或注销时获取事件?与在linux上使用logind或consolekit类似。

1 个答案:

答案 0 :(得分:1)

您需要的工具是LaunchAgent。 LaunchAgent在用户登录时自动启动,并在注销时关闭。如果您还有LaunchDaemon,则可以使用LaunchAgent从用户上下文与其进行通信。有关详细信息以及如何设置,请参阅Creating Launch Daemons and Agents。确保同样查看XPC服务(在同一个文档中),以了解进程之间通信的一种方式。您也可以使用环回网络,但XPC在适当的时候更强大,更受欢迎。

如果您正在构建此类内容,那么您肯定希望阅读整个Daemons and Services Programming Guide以及TN2083: Daemons and Agents。技术说明可能是您为此类问题阅读的最重要的文档。在这方面,OS X与Linux(或BSD)不同。