Как я могу получить уведомление о выходе пользователя из системы? - PullRequest
0 голосов
/ 14 декабря 2009

Я пишу пользовательский агент, который должен выполнить некоторую очистку, когда пользователь выходит из OS X. Агент НЕ получает сигнал SIGINT (ни SIGTERM, ни SIGKILL). Из-за этого процесс агента остается «побочным» процессом, работающим на Mac, и он больше не будет реагировать на любые попытки, которые я предпринимаю, чтобы убить его. Мне нужно получить уведомление о том, что пользователь выходит из системы, и тогда я могу корректно завершить работу Агента.

Я знаю о CFNotificationCenter, но не смог найти ни одного примера, как использовать его для выхода из системы. На самом деле я не нашел список, описывающий возможные уведомления (по крайней мере, стандартные), которые я могу наблюдать с помощью CFNotificationCenter. Кто-нибудь может мне помочь, пожалуйста?

Привет
Alan

1 Ответ

0 голосов
/ 07 августа 2011

Apple имеет документ , описывающий, как это делается. По сути, вы используете SCDynamicStoreCopyConsoleUser для проверки текущего пользователя. Если это loginwindow , вы знаете, что ни один пользователь не вошел в систему. Затем вы можете зарегистрироваться для получения уведомления при каждом изменении текущего пользователя консоли GUI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...