Как выйти из системы бездействующим пользователям?
У меня есть несколько ПК с киосками, которые работают почти так же, как гостевая сессия Ubuntu. В верхней части дома пользователей киоска установлена объединенная файловая система, поэтому он ничего не может изменить, но все же может сохранять файлы во время работы на компьютере (и забирать их с собой с помощью USB-ключа).
Пользователи иногда оставляют станции с личными вещами, все еще на рабочем столе. Из-за этого я хочу, чтобы они вышли из системы, скажем, через 10 минут бездействия (файловая система объединения будет очищена при выходе из системы).
Любые идеи, если существует существующее решение (autolog только регистрирует пользователя из активных сеансов терминала).
2 ответа
Разочарован 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
Я написал свой собственный сценарий для этого. Существует инструмент под названием xprintidle, который дает вам время простоя 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
Я открыл корни 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
Работает как шарм.