On 06/18/2012 09:45 AM, Lennart Poettering wrote:
On Thu, 14.06.12 11:15, Fernando Lopez-Lezcano (na...@ccrma.stanford.edu) wrote:
Heya,
Hi Lennart,
Any suggestions on how I may run a script when a user logins or logouts
of the graphical console? I used to do this with gdm by customizing the
Post* and Pre* scripts in /etc/gdm.
I see that the login/logout process is (appears to be) controlled by
systemd. What would be a good approach to getting the system to run a
script before a user logs in and after a user logs out (ie: for local
users sitting at the console - probably now called a seat if I
understand things correctly).
Thanks for any advice!
Hmm, so there are multiple ways to achieve this, but it really depends
on what you are trying to do here. May I ask what kind of script you
want to run for a user logging in?
Our workstations have a partition on the hard disk for users to use
temporarily, mounted under /zap (we've had this for a long long time).
When a local user (ie: sitting in front of the machine) logs out the
contents of /zap/ are erased. The partition is usually rather big and
different from /tmp, /var/tmp, etc (ie: the user should see an empty
directory when he/she logins).
The script singled out some processes for killing (and log) that could
spell trouble for subsequent users if they stayed alive (namely jack and
pd if I remember correctly).
The script also reloads the state of the alsa mixer so that users are
assured sound will work as expected after they login.
I also used them to track and terminate any user processes that linger
for a while after the logout, but I believe that can be done now through
systemd (I think I saw some references to that last week, the name of
the preference escapes me right now).
Anyway, you get the idea.
Also do you want this to run prviliged or unprivieleged?
I would prefer privileged, that would allow me, for example, to choose
what to erase in /zap (not necessarily only the current user's files).
One possible way is probably to hook this into the PAM session
setup/shutdown so that you can catch all types of logins with this. If
you need to run a script rather than write a PAM script a quick google
search reveals that pam-hooks might be the way to go?
Anyway, I can make a better recommendation with a few hints on the
intended usecases
BTW, last Friday I tried to use a small perl program using Net::Dbus or
something like that (sorry, I don't have the code here right now) to try
to listen to specific messages from the --system bus but while
everything seemed to run fine and I got no errors I never saw any
messages (the messages were seen by the standard utility). Based on my
searches so far that seemed like a reasonable approach.
Thanks!
-- Fernando
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel