From 014848111c0cd6b5727da015646361dc41b5a37a Mon Sep 17 00:00:00 2001 From: alientim Date: Tue, 15 Oct 2024 10:52:08 +0200 Subject: [PATCH] =?UTF-8?q?usr/bin/chromium-monitor=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- usr/bin/chromium-monitor | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 usr/bin/chromium-monitor diff --git a/usr/bin/chromium-monitor b/usr/bin/chromium-monitor new file mode 100644 index 0000000..1658c68 --- /dev/null +++ b/usr/bin/chromium-monitor @@ -0,0 +1,33 @@ +#!/bin/bash +get_monitor() { + sudo cat /var/lib/dhcp/* | grep -a "option monitor" | tail -1 | \ + awk '{ s = ""; for (i = 3; i <= NF; i++) s = s $i " "; print s}' | \ + awk -F '"' '{print $2}' +} +get_current_window() { + DISPLAY=:0 xdotool getwindowfocus getwindowname | awk -F '- Chromium' '{print $1}' +} +monitor="" +while [ -z "$monitor" ]; do + monitor=$(get_monitor) + if [ -z "$monitor" ]; then + sleep 5 + fi +done +monitor_md5=$(echo -n ${monitor^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}') +while true; do + new_monitor=$(get_monitor) + new_current=$(get_current_window) + if [ -n "$new_monitor" ] && [ -n "$new_current" ]; then + new_monitor_md5=$(echo -n ${new_monitor^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}') + current_md5=$(echo -n ${new_current^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}') + if [ "$new_monitor_md5" != "$monitor_md5" ] && [ "$current_md5" != "$monitor_md5" ]; then + echo "Mismatch detected. Rebooting now." + sudo reboot + exit 1 + fi + else + echo "Either monitor or current is not available, skipping check." + fi + sleep 5s +done \ No newline at end of file