From b2d2a89ca317c5f3835954eceb7b52380575b335 Mon Sep 17 00:00:00 2001 From: Tim Eertmoed Date: Mon, 28 Oct 2024 20:18:11 +0100 Subject: [PATCH] usr/bin/custom/watchdog-monitor aktualisiert --- usr/bin/custom/watchdog-monitor | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/usr/bin/custom/watchdog-monitor b/usr/bin/custom/watchdog-monitor index 801ae21..2ee136d 100644 --- a/usr/bin/custom/watchdog-monitor +++ b/usr/bin/custom/watchdog-monitor @@ -26,7 +26,7 @@ update_watchdog_config() { if [ ${#ip_array[@]} -eq 0 ]; then echo "No IP addresses found. Watchdog configuration cleared." >> "$log_file" - return 0 # No IP addresses to configure + return 1 # No IP addresses to configure, return 1 to continue loop else # Insert IPs into config for ip in "${ip_array[@]}"; do @@ -35,26 +35,37 @@ update_watchdog_config() { echo "Configured watchdog to ping: ${ip_array[*]}" >> "$log_file" # Restart watchdog service - sudo systemctl restart watchdog - return 1 # IP addresses were configured + if sudo systemctl restart watchdog; then + echo "Watchdog service restarted successfully." >> "$log_file" + return 0 # Successful restart, exit function with 0 to break main loop + else + echo "Failed to restart watchdog service." >> "$log_file" + return 1 # Failed restart, continue main loop + fi fi } +# Loop parameters +interval=30 # Interval to wait between checks +start_time=$(date +%s) +end_time=$((start_time + 300)) # 5 minutes in seconds + +# Main loop while true; do - if update_watchdog_config; then + if ! update_watchdog_config; then echo "IP addresses found and watchdog restarted. Exiting loop." >> "$log_file" break else - echo "No IP addresses found. Waiting for $interval seconds before checking again..." >> "$log_file" + echo "No IP addresses found or restart failed. Waiting for $interval seconds before checking again..." >> "$log_file" fi - # Check time limit + # Check if 5 minutes have passed if [ "$(date +%s)" -ge "$end_time" ]; then echo "5 minutes have passed. Stopping the watchdog service." >> "$log_file" sudo systemctl stop watchdog break fi - + echo "Waiting for $interval seconds before checking for IP addresses again..." >> "$log_file" sleep $interval done