#!/bin/bash ## Script created by Rainer Rössler (roesslerrr-at-web.de) ## Modified by Robin Schneider ## This script can be automatically set up by the Ansible role ypid.linuxmuster_net-client-customize: https://galaxy.ansible.com/list#/roles/4058 ## License: Free Software (License GPLv3) # Änderungen für Logout statt shutdown im August 2017 von Andreas Mutter export LANG="de_DE.utf8" export PATH="/usr/bin:/sbin:/bin" #TARGET_USER="$(who | grep 'tty' | tail --lines 1 | cut --fields 1 --delimiter ' ')" TARGET_USER="$(who | grep 'tty' | tail --lines 1 | awk '{print $1 }' )" run_in_user_context="sudo -u ${TARGET_USER}" ## Prüfen, ob ein Benutzer angemeldet ist; wenn nein keine Aktion, wenn ja... USERCOUNT=$(who | wc -l) if [ $USERCOUNT -eq 0 ]; then # shutdown -h now exit 0 else ## Frage an den Benutzer, ob das Abmelden abgebrochen werden soll. $run_in_user_context zenity --question --timeout=300 --text="Es ist $(date +%H.%M) Uhr. \nSie werden um $(date -d '10 minutes' +%H.%M) Uhr abgemeldet. \nIst das OK?" --title="Stundenende" --ok-label="Ja" --cancel-label="Nein, ich möchte noch arbeiten!" STATUS=$? if [ $STATUS -eq 1 ]; then ## Nicht abmelden exit 0 else for seconds_until_shutdown in $(seq 300 -60 60); do $run_in_user_context zenity --warning --timeout=60 --text="Sie werden in $seconds_until_shutdown Sekunden abgemeldet. Bitte abspeichern." & sleep 60 done $run_in_user_context zenity --warning --timeout=5 --text="Sie werden abgemeldet. Auf Wiedersehen." & sleep 5 # shutdown -h now pkill -9 -u ${TARGET_USER} fi fi exit 0