netz39-infra-ansible/templates/hobbes/kiosk.sh.j2

48 lines
1.1 KiB
Text
Raw Permalink Normal View History

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..."
# 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
# 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
# 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