#!/bin/bash # Check if the script is run by root if [ "$EUID" -ne 0 ] then echo "Please run as root" exit fi # MQTT broker details BROKER="{{ kiosk_mqtt_host }}" TOPIC="{{ kiosk_mqtt_topic }}" # Variable to store the PID of the fbi process fbi_pid=0 # Function to be executed on SIGTERM on_sigterm() { echo "SIGTERM received, exiting..." # Kill the fbi process with the stored PID if [ $fbi_pid -ne 0 ]; then sudo kill $fbi_pid fi # Remove the temporary file rm -f /tmp/grafana.png exit 0 } # Trap SIGTERM and call on_sigterm() when it is received trap 'on_sigterm' SIGTERM while true do # Subscribe to the topic and save received data to a file mosquitto_sub -h $BROKER -t $TOPIC -C 1 > /tmp/grafana.png # Kill the previous fbi process if [ $fbi_pid -ne 0 ]; then sudo kill $fbi_pid fi # Display the image using fbi fbi -T 1 -noverbose -a /tmp/grafana.png & fbi_pid=$! # Wait to avoid a race condition between # fbi starting and mosquitto truncating the file sleep 1 done