2024-01-04 21:54:53 +01:00
|
|
|
#!/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..."
|
2024-01-07 20:29:06 +01:00
|
|
|
|
|
|
|
# Kill the fbi process
|
|
|
|
# As the process forks itself, we do not get a reliable PID and killall is needed
|
|
|
|
killall fbi
|
|
|
|
|
2024-01-04 21:54:53 +01:00
|
|
|
# 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
|
2024-01-07 20:29:06 +01:00
|
|
|
# As the process forks itself, we do not get a reliable PID and killall is needed
|
|
|
|
killall fbi
|
2024-01-04 21:54:53 +01:00
|
|
|
|
2024-01-09 21:36:22 +01:00
|
|
|
# Display the image
|
|
|
|
fbi -T 1 -noverbose -a /tmp/grafana.png &
|
|
|
|
|
2024-01-04 21:54:53 +01:00
|
|
|
# Wait to avoid a race condition between
|
|
|
|
# fbi starting and mosquitto truncating the file
|
|
|
|
sleep 1
|
|
|
|
done
|