我正在编写一个用户代理,当用户退出OS X时需要执行一些清理。代理没有收到SIGINT(既没有SIGTERM,也没有SIGKILL)信号。因此,代理进程仍然是在Mac上运行的“鬼”进程,并且它将不再响应我杀死它的任何尝试。我需要通知用户正在注销,然后我可以优雅地处理代理的关闭。
我知道CFNotificationCenter,但我找不到任何关于如何使用它进行注销的示例。实际上我没有找到一个列表,描述了我可以使用CFNotificationCenter观察到的可能的通知(至少是标准的通知)。有人可以帮帮我吗?
问候
艾伦
答案 0 :(得分:0)
Apple已a document描述了如何完成此操作。基本上,您使用SCDynamicStoreCopyConsoleUser
检查当前已登录的用户。如果这是 loginwindow ,则表示没有用户登录。然后,只要当前GUI控制台用户发生更改,您就可以注册通知。