diff --git a/templates/hobbes/kiosk.sh.j2 b/templates/hobbes/kiosk.sh.j2 new file mode 100755 index 0000000..e9c7944 --- /dev/null +++ b/templates/hobbes/kiosk.sh.j2 @@ -0,0 +1,48 @@ +#!/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