From 29eb69025ae40c15271cb89501c99fd4ef56bd43 Mon Sep 17 00:00:00 2001 From: cjwaian Date: Tue, 23 Sep 2025 09:17:22 -0700 Subject: [PATCH] Adjusting systemd unit files to avoid hardcoded UID in the runtime dir path (#461) * Update install_services.sh Replaced hardcoded uid * Update install_services.sh avoid uid in /run path * Update install_services.sh had to use $(id) * Update update_birdnet_snippets.sh Remove XDG_RUNTIME_DIR from templates * removed XDG_RUNTIME_DIR * update HIDE_MOUNTS runtime paths uid agnostic * typos --- scripts/install_services.sh | 3 --- scripts/update_birdnet_snippets.sh | 25 ++++++++++++++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/scripts/install_services.sh b/scripts/install_services.sh index 93a3366..458c568 100755 --- a/scripts/install_services.sh +++ b/scripts/install_services.sh @@ -119,7 +119,6 @@ install_recording_service() { [Unit] Description=BirdNET Recording [Service] -Environment=XDG_RUNTIME_DIR=/run/user/1000 Restart=always Type=simple RestartSec=3 @@ -138,7 +137,6 @@ install_custom_recording_service() { [Unit] Description=BirdNET Custom Recording [Service] -Environment=XDG_RUNTIME_DIR=/run/user/1000 Restart=always Type=simple RestartSec=3 @@ -365,7 +363,6 @@ Description=BirdNET-Pi Live Stream After=network-online.target Requires=network-online.target [Service] -Environment=XDG_RUNTIME_DIR=/run/user/1000 Restart=always Type=simple RestartSec=3 diff --git a/scripts/update_birdnet_snippets.sh b/scripts/update_birdnet_snippets.sh index 4ac5760..937b888 100755 --- a/scripts/update_birdnet_snippets.sh +++ b/scripts/update_birdnet_snippets.sh @@ -173,7 +173,7 @@ if ! grep 'daemon' $HOME/BirdNET-Pi/templates/chart_viewer.service &>/dev/null;t systemctl daemon-reload && restart_services.sh fi -if grep -q 'birdnet_server.service' "$HOME/BirdNET-Pi/templates/birdnet_analysis.service"&>/dev/null; then +if grep -q 'birdnet_server.service' "$HOME/BirdNET-Pi/templates/birdnet_analysis.service" &>/dev/null; then sed -i '/After=.*/d' "$HOME/BirdNET-Pi/templates/birdnet_analysis.service" sed -i '/Requires=.*/d' "$HOME/BirdNET-Pi/templates/birdnet_analysis.service" sed -i '/RuntimeMaxSec=.*/d' "$HOME/BirdNET-Pi/templates/birdnet_analysis.service" @@ -187,20 +187,39 @@ if ! [ -f "$HOME/BirdNET-Pi/templates/$TMP_MOUNT" ]; then chown $USER:$USER "$HOME/BirdNET-Pi/templates/$TMP_MOUNT" fi -if grep -q -e '-P log' $HOME/BirdNET-Pi/templates/birdnet_log.service ;then +if grep -q -e '-P log' $HOME/BirdNET-Pi/templates/birdnet_log.service ; then sed -i "s/-P log/--path log/" ~/BirdNET-Pi/templates/birdnet_log.service systemctl daemon-reload && restart_services.sh fi -if grep -q -e '-P terminal' $HOME/BirdNET-Pi/templates/web_terminal.service ;then +if grep -q -e '-P terminal' $HOME/BirdNET-Pi/templates/web_terminal.service ; then sed -i "s/-P terminal/--path terminal/" ~/BirdNET-Pi/templates/web_terminal.service systemctl daemon-reload && restart_services.sh fi +if grep -q -e 'Environment=XDG_RUNTIME_DIR=/run/user/' $HOME/BirdNET-Pi/templates/birdnet_recording.service; then + sed -i '/^Environment=XDG_RUNTIME_DIR=\/run\/user\/[0-9]\+/d' $HOME/BirdNET-Pi/templates/birdnet_recording.service + systemctl daemon-reload && restart_services.sh +fi + +if grep -q -e 'Environment=XDG_RUNTIME_DIR=/run/user/' $HOME/BirdNET-Pi/templates/custom_recording.service; then + sed -i '/^Environment=XDG_RUNTIME_DIR=\/run\/user\/[0-9]\+/d' $HOME/BirdNET-Pi/templates/custom_recording.service + systemctl daemon-reload && restart_services.sh +fi + +if grep -q -e 'Environment=XDG_RUNTIME_DIR=/run/user/' $HOME/BirdNET-Pi/templates/livestream.service; then + sed -i '/^Environment=XDG_RUNTIME_DIR=\/run\/user\/[0-9]\+/d' $HOME/BirdNET-Pi/templates/livestream.service + systemctl daemon-reload && restart_services.sh +fi + if grep -q 'php7.4-' /etc/caddy/Caddyfile &>/dev/null; then sed -i 's/php7.4-/php-/' /etc/caddy/Caddyfile fi +if grep -q '^HIDE_MOUNTS.*\/run\/user' $HOME/BirdNET-Pi/templates/phpsysinfo.ini; then + sed -i 's#/run/user/[0-9]\+#/run/user/[0-9]+#g' $HOME/BirdNET-Pi/templates/phpsysinfo.ini +fi + if ! [ -L /etc/avahi/services/http.service ];then # symbolic link does not work here, so just copy cp -f $HOME/BirdNET-Pi/templates/http.service /etc/avahi/services/