我一直在自学如何编写登录脚本,但很难找到有关编写 LOGOUT 脚本的信息。我希望能够在用户退出 X 会话时记录日志条目。
以下是我想在注销时执行的操作:
#!/bin/bash
# This script is intended to record when a user logs out of a TTY shell or the X session.
# This will record the results to a log file: logoutScript.log
# Variables used in this script.
dDate=$(date +%Y/%m/%d)
dTime=$(date +%l:%M%P)
logDir=/opt/scripts/logs
logFile=$logDir/logoutUser.log
# Begin operation of script.
echo "$dDate, $dTime - User '$USER' has logged out of the system." >> $logFile
# End of file
exit 0
我知道如果我在登录脚本中使用下面的代码,它会按照我想要的方式工作。那么我该如何对 LOGOUT 脚本执行反向操作呢?
# Detect if user is logged into TTY shell or X session, then execute corresponding login script.
if xhost >& /dev/null ; then
gnome-terminal -e "bash -c \"cd /opt/scripts && ./loginScripts.sh && cd $HOME \""
else
bash -c "cd /opt/scripts && ./loginScripts.sh && cd $HOME"
fi
我将非常感激您的帮助。谢谢。
答案1
Ctrl通过同时按下+ Alt+T或在破折号中找到它来打开终端(或也称为命令行) 。
运行此命令sudo gedit /etc/lightdm/lightdm.conf
。这将打开文本编辑器,其中包含位于文件夹中的 lightdm.conf 文件/etc/lightdm
。
文件中应该有一行[SeatDefaults]
。在此行下方输入session-cleanup-script=/path/to/your-script.sh
,其中/path/to/your-script.sh
是要运行的脚本的实际地址。
注意:通过运行以下命令确保您的脚本设置为可执行:
sudo chmod +x /path/to/script.sh
保存并退出。
注意:从 14.04 版本开始,配置文件不存在,必须手动创建或使用以下命令从示例文件中复制:
sudo sh -c 'zcat /usr/share/doc/lightdm/lightdm.conf.gz > /etc/lightdm/lightdm.conf'
如果您只想要一个退出终端的脚本,只需将其放入即可~/.bash_logout
。