#!/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 # As the process forks itself, we do not get a reliable PID and killall is needed killall fbi # 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 # As the process forks itself, we do not get a reliable PID and killall is needed killall fbi # Display the image fbi -T 1 -noverbose -a /tmp/grafana.png & # Wait to avoid a race condition between # fbi starting and mosquitto truncating the file sleep 1 done