Re: detecting logout
Re: detecting logout
- Subject: Re: detecting logout
- From: Paul Nelson <email@hidden>
- Date: Tue, 01 Feb 2005 16:14:26 -0600
Look for documentation for
SCDynamicStoreKeyCreateConsoleUser
and
SCDynamicStoreSetNotificationKeys
You should get a notification whenever any user logs out of the "console"
(anyone logged in with fast user switching too). Your code will have to
figure out who logged out.
> From: Pete Gontier <email@hidden>
> Date: Tue, 01 Feb 2005 11:57:17 -0800
> To: <email@hidden>
> Subject: detecting logout
> Resent-From: Mark Jaffe <email@hidden>
> Resent-Date: Tue, 1 Feb 2005 12:35:03 -0800
>
> This may be a Mac OS X question as opposed to a Darwin question.
> Nevertheless, this is the only relevant place I know of to ask this
> question.
>
> I am developing a per-user bootstrap daemon. This program used to be a
> startup item, but for obscure reasons not relevant to the problem at
> hand,
> it became necessary to morph it into a per-user bootstrap daemon (and
> not,
> it should be noted, a global bootstrap daemon). The key difference
> between
> the two forms of program for purposes of this discussion is that a
> startup
> item launches once at startup and a per-user bootstrap daemon launches
> whenever a user logs in. This means that there may be many instances of
> a
> single per-user bootstrap daemon, which is fine. The trick is knowing
> when
> each instance should quit. When the user logs out, per-user bootstrap
> daemons are not automagically killed, which I suppose may be a feature
> to
> someone somewhere. For me, it presents a problem, because there is no
> reason
> for an instance of my program to hang around after the user logs out.
> The
> trick is knowing when that is.
>
> Apple's QA1133 seems to be the available wisdom on knowing when users
> login
> and logout.
>
> http://developer.apple.com/qa/qa2001/qa1133.html
>
> Unfortunately, this QA seems to be out of date. It seems to describe the
> pre-Panther, pre-Fast User Switching universe. QA1133 tells us we are to
> believe the user is logging out when the user name is NULL, but, under
> Panther, if user 1 logs in, user 2 logs in, and then user 2 logs out,
> at no
> time will the console user be NULL. Even when the user is
> re-authenticating
> to switch back to user 1, the console user is "loginwindow" as opposed
> to
> NULL. (The user may be NULL after the *last* user logs out, but I
> haven't
> tested this.)
>
> I could enable the copious debug logging done by the distributed
> notification server and maybe pick out some choice undocumented strings
> as
> they fly around in the system and hope to interpret their meaning
> correctly,
> but that seems unlikely to be future-proof.
>
> If I must resort to higher-level APIs, I'd prefer Carbon-oriented
> solutions
> rather than Cocoa-oriented solutions because the app in question is
> written
> in C++, but I'll settle in a pinch for anything that works cleanly
> without
> pulling me up into being a client of the window server.
>
> Any ideas?
>
> --
>
> Pete Gontier
> http://www.m-audio.com/
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Darwin-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Darwin-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Darwin-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden