Answers:
对于远程SSH会话,Shell负责处理所有登出脚本。Bash shell通常会运行~/.bash_logout
。
对于X会话,登录管理器控制注销脚本。文件位置取决于所使用的登录管理器。当执行注销脚本时,Xserver没有运行,因此不要在脚本中包含任何尝试访问显示的程序。
对于Gnome,/etc/gdm/PostSession/Default
用于系统范围的默认注销脚本(无论谁注销,都可以运行)。与Bash的注销脚本不同,我认为GDM PostSession脚本没有特定于用户的版本。
XDM使用Reset脚本安装到/etc/X11/xdm/Xreset
。
对于KDE(使用KDM) ,你想要的Reset
脚本。KDE3使用/etc/kde3/kdm/Xreset
。可以/etc/kde3/kdm/kdmrc
使用Reset
密钥在KDM的配置文件中指定位置。
WDM显然使用了一对Reset脚本:位于/etc/X11/wdm/Xreset_0
(用于display :0
)的每个显示脚本,以及位于的全局脚本/etc/X11/wdm/Xreset
。WDM配置文件位于中/etc/X11/wdm/wdm-config
。
该答案中的文件位置来自Debian软件包。Ubuntu软件包通常会使用相同的文件,但是其他发行版可能会使用其他位置。
如果发行版使用PAM对用户进行身份验证,则可以安装pam_script
以提供功能onsessionopen/onsessionclose
。
我在基于Debian的发行版中使用它来检查scp
仅由用户修改的文件,并调整文件的权限。
C外壳(又名csh)具有.logout功能,而Bash(最新的默认设置)具有.bash_logout,但我不记得其他具有类似概念的外壳(ksh,sh等)。