Skip to content
Snippets Groups Projects
user-sessions 774 B
Newer Older
  • Learn to ignore specific revisions
  • Alberto LIVIO BECCARIA's avatar
    Alberto LIVIO BECCARIA committed
    #!/bin/bash
    
    find_regular_user_sessions() {
    	ESAME_KILL_USERS=`loginctl list-sessions -l | awk '{print $3}' | egrep -v 'root|labsync|esame|moodle|vbconsole|listed|USER'`
    }
    
    find_esame_user_sessions() {
    	ESAME_KILL_USERS=`loginctl list-sessions -l | awk '{print $3}' | egrep 'esame|moodle|vbconsole'`
    }
    
    kill_sessions() {
    	for a in ${ESAME_KILL_USERS}; do
    		echo loginctl kill-user "$a"
    		loginctl kill-user "$a"
    	done
    }
    
    start() {
    	# We kill user sessions when the exam starts.
    	find_regular_user_sessions
    	kill_sessions
    }
    
    stop() {
    	# We kill exam session when the exam ends.
    	find_esame_user_sessions
    	kill_sessions
    }
    
    case "$1" in
    'start')
    	start
    	;;
    'stop')
    	stop
    	;;
    'restart')
    	stop
    	start
    	;;
    *)
    	echo "Usage: $0 { start | stop | restart }";
    	exit 1;
    	;;
    esac
    exit 0