我有一些信息亭电脑,它们的工作方式与 Ubuntu 访客会话非常相似。信息亭用户主页上安装了一个联合文件系统,因此他们无法更改任何内容,但仍可以在机器上工作时保存文件(并使用 USB 密钥随身携带)。
用户有时会在离开工作站时,桌面上仍留有私人资料。因此,我希望他们在 10 分钟不活动后退出(退出时联合文件系统将被清空)。
是否存在现有解决方案,有任何想法吗(自动记录仅将用户从活动终端会话中注销)。
答案1
我对 感到失望autolog
,所以我也写了自己的剧本。Github。
- 它对于 X 会话和 TTY 上的多个用户来说足够通用。
- 我已经包含了 Upstart 作业,假设脚本位于
/usr/bin/idlekiller
设置方法:
sudo apt-get install xprintidle
sudo wget https://raw.githubusercontent.com/murukeshm/scratchpad/master/linux/idlekiller/idlekiller.conf -O /etc/init/idlekiller.conf
sudo wget https://raw.githubusercontent.com/murukeshm/scratchpad/master/linux/idlekiller/idlekiller -O /usr/bin/idlekiller
sudo service idlekiller start
答案2
我写了自己的脚本来做这件事。有一个工具叫打印空闲它会给你一个 xsession 的空闲时间。你需要先安装它
sudo apt-get install xprintidle
然后创建脚本,例如/root/bin/idle_check.sh:
#!/bin/sh
DISPLAY=:0
TIMEOUT=600000 # 10min = 10 * 60 * 1000
if [ $(xprintidle) -gt $TIMEOUT ]; then
notify-send -t 60000 -i system-shutdown-panel-restart -u critical "WARNING" \
"This machine looks idle and will be logged out in 60s.\nTo prevent this, move the mouse!"
sleep 60;
if [ $(xprintidle) -gt $TIMEOUT ]; then
pkill -u matthias
fi
fi
我打开了 root crontab 让它每分钟检查一次
sudo -i
crontab -e
让它看起来像这样
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11
*/1 * * * * /root/bin/check_idle.sh > /dev/null 2>&1
奇迹般有效。