syslogout - modular centralized shell logout mechanism
syslogout is a generic approach to enable centralized shell logout
actions for all users of a given system in a modular and centralized
way mostly aimed at avoiding work for lazy sysadmins. It has only been
tested to work with the bash shell.
It basically consists of the small /etc/syslogout shell script which
invokes other small shell scripts having a .bash suffix which are
contained in the /etc/syslogout.d/ directory. The system administrator
can drop in any script he wants without any naming convention other
than that the scripts need to have a .bash suffix to enable automagic
sourcing by the /etc/syslogout script.
For shell sessions, the contents of /etc/syslogout.d/" will be sourced
by every user at logout if the following lines are present in his
if [ -f /etc/syslogout ]; then
If used for X sessions it is advisable to include the former statement
into the Xreset script of the X display manager instead to prevent that
closing of an terminal emulator window yields unexpected results in
your running X session if your X11 terminal emulator is using a login
shell. Be sure then to run it under the user-id of the X session’s
user. See the example files in /usr/share/doc/syslogout/ for
Users not wanting /etc/syslogout to be sourced for their environment
can easily disable it’s automatic mechanism. It can be disabled by
simply creating an empty file called $HOME/.nosyslogout in the user’s
home directory using e.g. the touch(1) command.
Any single configuration file in /etc/syslogout.d/ can simply be
overridden by any user by creating a private $HOME/.syslogout.d/
directory which may contain a user’s own version of any configuration
file to be sourced instead of the system default. It’s names have just
to match exactly the system’s default /etc/syslogout.d/ configuration
files. Empty versions of these files contained in the
$HOME/.syslogout.d/ directory automatically disable sourcing of the
system wide version.
Naturally, users can add and include their own private scripts to be
automagically executed by /etc/syslogout at logout time.
There are no options other than those dictated by shell conventions.
Anything is defined within the configuration scripts themselves.
The README files and configuration examples contained in
/usr/share/doc/syslogout/ and the manual page for bash(1), xdm(1x),
xdm.options(5), and wdm(1x). Recommended further reading is everything
related with shell programming.
If you need a similar mechanism for executing code at login time check
out the related package sysprofile(8) which is a very close companion
syslogout in its current form is mainly restricted to bash(1) syntax.
In fact it is actually a rather embarrassing quick and dirty hack than
anything else - but it works. It serves the practical need to enable
a centralized bash configuration until something better becomes
available. Your constructive criticism in making this into something
better" is very welcome. Before i forget to mention it: we take
syslogout was developed by Paul Seelig <firstname.lastname@example.org>
specifically for the Debian GNU/Linux system. Feel free to port it to
and use it anywhere else under the conditions of either the GNU public
license or the BSD license or both. Better yet, please help to make it
into something more worthwhile than it currently is.