From a4122b5bccca22b55cbdb76e201fdca1ddaf3260 Mon Sep 17 00:00:00 2001 From: frederik Date: Sun, 11 Feb 2024 17:19:09 +0100 Subject: [PATCH] write transient files to tmpfs aka ram drive --- scripts/install_helpers.sh | 19 +++++++++++++++++++ scripts/install_services.sh | 2 ++ scripts/uninstall.sh | 3 ++- scripts/update_birdnet_snippets.sh | 6 ++++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/scripts/install_helpers.sh b/scripts/install_helpers.sh index b884b14..ebcc6e0 100644 --- a/scripts/install_helpers.sh +++ b/scripts/install_helpers.sh @@ -26,3 +26,22 @@ get_tf_whl () { } fi } + +install_birdnet_mount() { + TMP_MOUNT=$(systemd-escape -p --suffix=mount "$RECS_DIR/StreamData") + cat << EOF > $HOME/BirdNET-Pi/templates/$TMP_MOUNT +[Unit] +Description=Birdnet tmpfs for transient files +ConditionPathExists=$RECS_DIR/StreamData + +[Mount] +What=tmpfs +Where=$RECS_DIR/StreamData +Type=tmpfs +Options=mode=1777,nosuid,nodev + +[Install] +WantedBy=multi-user.target +EOF + ln -sf $HOME/BirdNET-Pi/templates/$TMP_MOUNT /usr/lib/systemd/system +} diff --git a/scripts/install_services.sh b/scripts/install_services.sh index ca896da..2f323ac 100755 --- a/scripts/install_services.sh +++ b/scripts/install_services.sh @@ -413,6 +413,7 @@ install_services() { install_gotty_logs install_phpsysinfo install_livestream_service + install_birdnet_mount install_cleanup_cron install_weekly_cron increase_caddy_timeout @@ -426,6 +427,7 @@ install_services() { if [ -f ${config_file} ];then source ${config_file} + source install_helpers.sh install_services chown_things else diff --git a/scripts/uninstall.sh b/scripts/uninstall.sh index 1d2a427..e2c105d 100755 --- a/scripts/uninstall.sh +++ b/scripts/uninstall.sh @@ -6,7 +6,8 @@ my_dir=$HOME/BirdNET-Pi/scripts source /etc/birdnet/birdnet.conf &> /dev/null SCRIPTS=($(ls -1 ${my_dir}) ${HOME}/.gotty) set -x -services=($(awk '/service/ && /systemctl/ && !/php/ {print $3}' ${my_dir}/install_services.sh | sort) custom_recording.service avahi-alias@.service) +TMP_MOUNT=$(systemd-escape -p --suffix=mount "$RECS_DIR/StreamData") +services=($(awk '/service/ && /systemctl/ && !/php/ {print $3}' ${my_dir}/install_services.sh | sort) custom_recording.service avahi-alias@.service $TMP_MOUNT) remove_services() { for i in "${services[@]}"; do diff --git a/scripts/update_birdnet_snippets.sh b/scripts/update_birdnet_snippets.sh index 5ebb0b0..e73b078 100755 --- a/scripts/update_birdnet_snippets.sh +++ b/scripts/update_birdnet_snippets.sh @@ -106,6 +106,12 @@ if grep -q 'birdnet_server.service' "$HOME/BirdNET-Pi/templates/birdnet_analysis systemctl daemon-reload && restart_services.sh fi +TMP_MOUNT=$(systemd-escape -p --suffix=mount "$RECS_DIR/StreamData") +if ! [ -f "$HOME/BirdNET-Pi/templates/$TMP_MOUNT" ]; then + install_birdnet_mount + chown $USER:$USER "$HOME/BirdNET-Pi/templates/$TMP_MOUNT" +fi + if grep -q 'php7.4-' /etc/caddy/Caddyfile &>/dev/null; then sed -i 's/php7.4-/php-/' /etc/caddy/Caddyfile fi