TIME_START=00:00 TIME_STOP=23:59 tv_check() { ping -c 1 -W 1 192.168.1.12 2>&1 > /dev/null || { echo "TV is unreachable."; return; } adb connect 192.168.1.12 if adb shell dumpsys power | grep mWakefulness=Awake then adb shell input keyevent 26 else echo "TV is turning OFF." fi } gabi_check() { loginctl list-users | grep gabi || { echo 'Gabi is not online.'; return; } doas loginctl terminate-user gabi } gaja_check() { ping -c 1 -W 1 192.168.1.122 2>&1 >/dev/null || { echo "Gaja's PC is unreachable."; return; } # Check if Gaja has any sessions sshpass -p Nagaja ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no -F /dev/null gaja@192.168.1.122 \ "loginctl list-sessions --no-pager 2>/dev/null | grep -q gaja" 2>&1 if [ $? -ne 0 ]; then echo "Gaja is not online." return fi # Terminate all of Gaja's sessions (SSH drops = success) sshpass -p Nagaja ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no -F /dev/null gaja@192.168.1.122 \ "loginctl terminate-user gaja" 2>/dev/null echo "Gaja's PC: logged out." } S=$(date -d "$TIME_START" +%s) T=$(date -d "$TIME_STOP" +%s) C=$(date +%s) if [ $C -lt $S ] then echo "PRE: $((S - C)) seconds to go." elif [ $C -gt $T ] then echo "POST: $((C - T)) seconds passed." else echo "ACTIVE: Executing for the next $((T - C)) seconds." gabi_check gaja_check tv_check fi exit 0