diff --git a/peer-monitor-restart-loop.sh b/peer-monitor-restart-loop.sh deleted file mode 100755 index 728ffb0..0000000 --- a/peer-monitor-restart-loop.sh +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/bash - -# Path to the Qortal folder -QORTAL_DIR=~/qortal -LOG_FILE="$QORTAL_DIR/peer_monitor_log.txt" -PEER_THRESHOLD=15 -CONSECUTIVE_CHECKS=2 -CHECK_INTERVAL=300 # 5 minutes in seconds - -# Logging function -log() { - echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE" -} - -# Check if running in screen -if [ -z "$RUNNING_IN_SCREEN" ]; then - # Check if screen is installed - if command -v screen &> /dev/null; then - log "Screen is installed, running script in a screen session..." - export RUNNING_IN_SCREEN=1 - screen -S qortal_peer_monitor -dm bash -c "RUNNING_IN_SCREEN=1 $(realpath "$0")" - if [ $? -eq 0 ]; then - log "Script successfully started in screen session 'qortal_peer_monitor'." - else - log "Failed to start script in screen session." - fi - exit 0 - else - log "Screen is not installed, running script normally..." - fi -fi - -# Function to get number of connections -get_number_of_connections() { - local result=$(curl -s localhost:12391/admin/status) - - if command -v jq &> /dev/null; then - log "jq is installed, using jq to parse response." - echo "$result" | jq -r '.numberOfConnections' - else - log "jq not installed, executing sed backup method." - echo "$result" | sed -n 's/.*"numberOfConnections":\([0-9]*\).*/\1/p' - fi -} - -# Main monitoring loop -consecutive_fail_or_low_count=0 - -while true; do - log "Checking number of connections..." - num_connections=$(get_number_of_connections) - - if [ -z "$num_connections" ]; then - log "Failed to obtain number of connections." - ((consecutive_fail_or_low_count++)) - log "Failed to obtain connections. Consecutive checks: $consecutive_fail_or_low_count" - else - log "Number of connections: $num_connections" - if [ "$num_connections" -lt "$PEER_THRESHOLD" ]; then - ((consecutive_fail_or_low_count++)) - log "Peer count below threshold ($PEER_THRESHOLD). Consecutive checks: $consecutive_fail_or_low_count" - else - consecutive_fail_or_low_count=0 - fi - fi - - if [ "$consecutive_fail_or_low_count" -ge "$CONSECUTIVE_CHECKS" ]; then - log "Peer count below threshold for $CONSECUTIVE_CHECKS consecutive checks, initiating restart..." - - # Navigate to Qortal directory - log "Navigating to Qortal directory..." - cd "$QORTAL_DIR" || { log "Failed to navigate to Qortal directory."; exit 1; } - - # Stop Qortal core - log "Stopping Qortal core..." - ./stop.sh &> stop_output.log & - stop_pid=$! - - # Wait for 30 seconds - sleep 45 - - # Check if stop script succeeded - if ! grep -q "Qortal ended gracefully" stop_output.log; then - log "Stop script did not complete successfully, force killing Java..." - killall -9 java - - # Remove blockchain lock file - log "Removing blockchain lock file..." - rm -rf "$QORTAL_DIR/db/blockchain.lck" - else - log "Qortal stopped gracefully." - fi - - # Ensure stop process completes -if ps -p $stop_pid > /dev/null; then - wait $stop_pid -else - log "Stop process already terminated or failed." -fi - - # Start Qortal core -log "Executing start script..." -log "Starting Qortal core..." -if ./start.sh; then - log "Qortal core started successfully." -else - log "Failed to start Qortal core."; fi - - # Reset consecutive low count - consecutive_fail_or_low_count=0 - fi - - # Wait for the next check - log "Waiting for $CHECK_INTERVAL seconds before next check..." - sleep $CHECK_INTERVAL -done -