如何通知用户正在注销?

时间:2009-12-14 15:18:49

标签: macos

我正在编写一个用户代理,当用户退出OS X时需要执行一些清理。代理没有收到SIGINT(既没有SIGTERM,也没有SIGKILL)信号。因此,代理进程仍然是在Mac上运行的“鬼”进程,并且它将不再响应我杀死它的任何尝试。我需要通知用户正在注销,然后我可以优雅地处理代理的关闭。

我知道CFNotificationCenter,但我找不到任何关于如何使用它进行注销的示例。实际上我没有找到一个列表,描述了我可以使用CFNotificationCenter观察到的可能的通知(至少是标准的通知)。有人可以帮帮我吗?

问候
艾伦

1 个答案:

答案 0 :(得分:0)

Apple已a document描述了如何完成此操作。基本上,您使用SCDynamicStoreCopyConsoleUser检查当前已登录的用户。如果这是 loginwindow ,则表示没有用户登录。然后,只要当前GUI控制台用户发生更改,您就可以注册通知。