Как сделать автоматический выход пользователей из Ubuntu

<!-Поскольку моя станция Ubuntu была превращена в многопользовательскую станцию (дети растут), мне нужен способ автоматического выхода из учетных записей после периода бездействия (общий выход из системы, а не только экран блокировки). Как я могу достичь этого в Ubuntu? Я попытался использовать autolog но вставить строку:

name=*          idle=15 grace=60

, похоже, не работает. Другой вариант-преобразовать это ответ в Ubuntu совместимы, но мне нужна помощь в том, что необходимо изменить...

1
задан Community
05.01.2023 16:59 Количество просмотров материала 2599
Распечатать страницу

1 ответ

вот как я решил свою проблему (это будет выйти из системы бездействующего пользователя после по крайней мере 30 минут простоя):

сначала создайте файл и вставьте в него этот код (может потребоваться установить xprintidle перед запуском):

#!/bin/bash
# Written by cz0 2010, adapted by dror 2013 
# Distributed under the terms of the GNU General Public License v2 

HALFHOUR=1800000
IDLETIME=`xprintidle`
QDBUS="/usr/bin/qdbus" 

if [ $IDLETIME -gt $HALFHOUR ]
then 
    logger timeout of $HALFHOUR expired. idle is $IDLETIME
    KDEPID=$(ps aux | grep 'startkde' | grep -v 'grep' | awk '{print }') 
    KDEUSER=$(ps u $KDEPID | grep 'startkde' | awk '{print }') 

# If the DBUS_SESSION_BUS_ADDRESS environment variable is not already set correctly 
# then set it by finding the environment file for the startkde process in proc and 
# parsing it to get get the correct setting. 

    if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then 
        ENVIRON_FILE=/proc/$(ps h --ppid $KDEPID -o pid | awk '{print }')/environ 
        CURRENT_DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS $ENVIRON_FILE | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//') 
        export DBUS_SESSION_BUS_ADDRESS=$CURRENT_DBUS_SESSION_BUS_ADDRESS
    fi 
    $QDBUS org.kde.ksmserver /KSMServer logout 1 0 2 
else
    logger timeout is $HALFHOUR not expired $IDLETIME 
fi

теперь cp it to/ bin/

sudo cp myfile /bin/logoutonidle

далее сделать его executavble

sudo chmod +x /bin/logoutonidle

следующий запуск для пользователя, которого вы хотите автоматически выйти из системы (при необходимости запустите его для каждого пользователя):

crontab -e

и добавьте к нему следующая строка (это заставит cron проверять каждые 15 минут, поэтому в худшем случае пользователь выйдет из системы после ~45 простоя):

*/15 * * * * export DISPLAY=:0 && /bin/logoutonidle 2>&1

Я хотел бы поблагодарить людей в этих нитях Bryan и Johanns для указывая мне в правильном направлении.

2
отвечен DrorCohen 2023-01-07 00:47

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх