So habe ich mein Problem gelöst (dies meldet einen Benutzer im Leerlauf nach mindestens 30 Minuten Leerlaufzeit ab):
Erstellen Sie zuerst eine Datei und fügen Sie diesen Code ein (möglicherweise müssen Sie xprintidle installieren, bevor Sie beginnen):
#!/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 '') KDEUSER=$(ps u $KDEPID | grep 'startkde' | awk '') # 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 '')/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
Nun cp es nach / bin /
sudo cp myfile /bin/logoutonidle
Machen Sie es als nächstes ausführbar
sudo chmod +x /bin/logoutonidle
Nächste Ausführung für den Benutzer, den Sie automatisch abmelden möchten (falls erforderlich, dann für jeden Benutzer ausführen):
crontab -e
und fügen Sie dazu die folgende Zeile hinzu (dies führt alle 15 Minuten eine cron-Prüfung durch, so dass der Benutzer nach ca. 45 Leerlaufzeiten abgemeldet wird):
*/15 * * * * export DISPLAY=:0 && /bin/logoutonidle 2>&1
Ich möchte den Leuten in diesen Fäden, Bryan und Johanns, danken, dass sie mich in die richtige Richtung weisen.