diff --git a/solr/bin/solr b/solr/bin/solr index 101fde35a51..30c3e3aa52b 100644 --- a/solr/bin/solr +++ b/solr/bin/solr @@ -1913,26 +1913,29 @@ function start_solr() { # shellcheck disable=SC2086 nohup "$JAVA" "${SOLR_START_OPTS[@]}" $SOLR_ADDL_ARGS -Dsolr.log.muteconsole \ -jar start.jar "${SOLR_JETTY_CONFIG[@]}" $SOLR_JETTY_ADDL_CONFIG \ - 1>"$SOLR_LOGS_DIR/solr-$SOLR_PORT-console.log" 2>&1 & echo $! > "$SOLR_PID_DIR/solr-$SOLR_PORT.pid" + 1>"$SOLR_LOGS_DIR/solr-$SOLR_PORT-console.log" 2>&1 & echo $! > "$SOLR_PID_DIR/solr-$SOLR_PORT.pid" - # Get the current entropy available - entropy_avail=$(cat /proc/sys/kernel/random/entropy_avail) + # Check and warn about low entropy on Linux systems + if [ -e /proc/sys/kernel/random ]; then + # Get the current entropy available + entropy_avail=$(cat /proc/sys/kernel/random/entropy_avail) - # Get the pool size - pool_size=$(cat /proc/sys/kernel/random/poolsize) + # Get the pool size + pool_size=$(cat /proc/sys/kernel/random/poolsize) - # Check if entropy is available and pool size is non-zero - if [[ $entropy_avail -gt 0 && $pool_size -ne 0 ]]; then + # Check if entropy is available and pool size is non-zero + if [[ $entropy_avail -gt 0 && $pool_size -ne 0 ]]; then # Compute the ratio of entropy available to pool size ratio=$(awk -v ea="$entropy_avail" -v ps="$pool_size" 'BEGIN {print (ea/ps)*100}') - + # Check if the ratio is less than 25% if (( $(echo "$ratio < 25" | bc -l) )); then echo "Warning: Available entropy is low. As a result, use of the UUIDField, SSL, or any other features that require" echo "RNG might not work properly. To check for the amount of available entropy, use 'cat /proc/sys/kernel/random/entropy_avail'." fi - else + else echo "Error: Either no entropy is available or the pool size is zero." + fi fi # no lsof on cygwin though