From f41363d11e5c39db7c40dbddca433cbf5e69b4f5 Mon Sep 17 00:00:00 2001 From: Jake Herbst Date: Wed, 25 May 2022 21:17:35 -0400 Subject: [PATCH] Updating restart_services.sh to restart faster now with socket re-use enabled for server --- scripts/restart_services.sh | 49 ++++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/scripts/restart_services.sh b/scripts/restart_services.sh index ad4e9f3..0516c70 100755 --- a/scripts/restart_services.sh +++ b/scripts/restart_services.sh @@ -4,23 +4,48 @@ source /etc/birdnet/birdnet.conf set -x my_dir=$HOME/BirdNET-Pi/scripts + sudo systemctl stop birdnet_server.service -sudo pkill server.py sudo systemctl stop birdnet_recording.service + services=(web_terminal.service -spectrogram_viewer.service -livestream.service -icecast2.service -extraction.service -chart_viewer.service -birdnet_recording.service -birdnet_log.service) + spectrogram_viewer.service + livestream.service + icecast2.service + extraction.service + chart_viewer.service + birdnet_recording.service + birdnet_log.service) for i in "${services[@]}";do -sudo systemctl restart "${i}" + sudo systemctl restart "${i}" done -until grep 5050 <(netstat -tulpn 2>&1);do -sudo systemctl restart birdnet_server.service -sleep 45 + +sudo systemctl start birdnet_server.service +sleep 5 + +for i in {1..5}; do + # We want to loop here (5*5seconds) until the server is running and listening on its port + systemctl is-active --quiet birdnet_server.service \ + && grep 5050 <(netstat -tulpn 2>&1) \ + && logger "[$0] birdnet_server.service is running" \ + && break + + sleep 5 done + +# Let's check a final time to ensure the server is running +systemctl is-active --quiet birdnet_server.service && grep 5050 <(netstat -tulpn 2>&1) +status=$? + +if (( status != 0 )); then + logger "[$0] Unable to start birdnet_server.service... Looping until it start properly" + + until grep 5050 <(netstat -tulpn 2>&1);do + sudo systemctl restart birdnet_server.service + sleep 45 + done +fi + +# Finally start the birdnet_analysis.service sudo systemctl restart birdnet_analysis.service