usr/bin/chromium-monitor aktualisiert

This commit is contained in:
2024-10-28 13:01:36 +01:00
parent 54d218451a
commit d96260222c

View File

@@ -1,34 +1,56 @@
#!/bin/bash #!/bin/bash
LOGFILE="/var/log/chromium-monitor.log"
get_monitor() { get_monitor() {
sudo cat /var/lib/dhcp/* | grep -a "option monitor" | tail -1 | \ 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 '{ s = ""; for (i = 3; i <= NF; i++) s = s $i " "; print s}' | \
awk -F '"' '{print $2}' awk -F '"' '{print $2}'
} }
get_current_window() { get_current_window() {
DISPLAY=:0 xdotool getwindowfocus getwindowname | awk -F '- Chromium' '{print $1}' DISPLAY=:0 xdotool getwindowfocus getwindowname | awk -F '- Chromium' '{print $1}'
} }
monitor="" monitor=""
while [ -z "$monitor" ]; do while [ -z "$monitor" ]; do
monitor=$(get_monitor) monitor=$(get_monitor)
echo "Current monitor: $monitor" >> $LOGFILE # Debug output
if [ -z "$monitor" ]; then if [ -z "$monitor" ]; then
sleep 5 sleep 5
fi fi
done done
monitor_md5=$(echo -n ${monitor^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}') monitor_md5=$(echo -n ${monitor^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}')
echo "Monitor MD5: $monitor_md5" >> $LOGFILE # Debug output
while true; do while true; do
new_monitor=$(get_monitor) new_monitor=$(get_monitor)
new_current=$(get_current_window) new_current=$(get_current_window)
# Log the current state
echo "New monitor: $new_monitor" >> $LOGFILE # Debug output
echo "New current window: $new_current" >> $LOGFILE # Debug output
if [ -n "$new_monitor" ] && [ -n "$new_current" ]; then if [ -n "$new_monitor" ] && [ -n "$new_current" ]; then
new_monitor_md5=$(echo -n ${new_monitor^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}') 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}') current_md5=$(echo -n ${new_current^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}')
# Log the computed MD5 hashes
echo "New monitor MD5: $new_monitor_md5" >> $LOGFILE # Debug output
echo "Current window MD5: $current_md5" >> $LOGFILE # Debug output
if [ "$new_monitor_md5" != "$monitor_md5" ] && [ "$current_md5" != "$monitor_md5" ]; then if [ "$new_monitor_md5" != "$monitor_md5" ] && [ "$current_md5" != "$monitor_md5" ]; then
echo "Mismatch detected. Rebooting now." >> /var/log/chromium-monitor echo "Mismatch detected. Rebooting now." >> $LOGFILE
sudo reboot sudo reboot
exit 1 exit 1
fi fi
else else
echo "Either monitor or current is not available, skipping check." >> /var/log/chromium-monitor echo "Either monitor or current is not available, skipping check." >> $LOGFILE
fi fi
# Log the status before sleeping
echo "Sleeping for 5 seconds before the next check..." >> $LOGFILE
sleep 5s sleep 5s
done done