mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 09:17:43 +03:00
ab72aab696
changing ports to use 6865 everywhere no need for default ports addressing missed outdated ports changed more ports from 7600 to 6865 dealt with more 8080s
85 lines
2.3 KiB
Bash
Executable File
85 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright (c) 2019 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
set -u
|
|
|
|
# options
|
|
PORT_RANGES=${PORT_RANGES:-"8000:8100 9000:9100 20000:20100 6865:6866"}
|
|
SHOULD_FAIL_BUILD=${SHOULD_FAIL_BUILD:-true}
|
|
SHOULD_KILL_PROCESSES=${SHOULD_KILL_PROCESSES:-false}
|
|
|
|
# internal global variables
|
|
PROCESS_DETECTED=false
|
|
|
|
function scan_ports()
|
|
{
|
|
local port_range=$1
|
|
local start_port=${port_range%%:*}
|
|
local end_port=${port_range##*:}
|
|
local sleep_before_reporting_process=10
|
|
|
|
echo -e "\nStarting scanning port range $start_port:$end_port ... \n"
|
|
|
|
for port in $(seq $start_port $end_port); do
|
|
pid=$(lsof -stcp:LISTEN -t -i :$port)
|
|
if [[ $? -eq 0 ]]; then
|
|
echo "process $pid detected on port $port, waiting for $sleep_before_reporting_process seconds ... "
|
|
sleep $sleep_before_reporting_process
|
|
pid=$(lsof -stcp:LISTEN -t -i :$port)
|
|
if [[ $? -eq 0 ]]; then
|
|
echo "process $pid still running and will be reported ..."
|
|
PROCESS_DETECTED=true
|
|
ps -wwfp $pid
|
|
if [[ $SHOULD_KILL_PROCESSES == true ]]; then
|
|
echo -e "\nKilling process $pid\n"
|
|
kill -9 $pid
|
|
pid=$(lsof -stcp:LISTEN -t -i :$port)
|
|
if [[ $? -eq 0 ]]; then
|
|
echo -e "\nCouldnt kill the process $pid with kill -9 \n"
|
|
else
|
|
echo -e "\n Able to force kill process $pid with kill -9 \n"
|
|
PROCESS_DETECTED=false
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
}
|
|
|
|
### MAIN
|
|
|
|
echo "
|
|
Checking for open ports (tcp:LISTENING)
|
|
|
|
This is useful to invoke as a diagnostic tool before running
|
|
processes expecting fixed ports to be available.
|
|
|
|
Using the following options:
|
|
|
|
- PORT_RANGES=${PORT_RANGES}
|
|
- SHOULD_FAIL_BUILD=${SHOULD_FAIL_BUILD}
|
|
- SHOULD_KILL_PROCESSES=${SHOULD_KILL_PROCESSES}
|
|
|
|
You can override the values by using environment variables.
|
|
|
|
You can specify multiple port ranges, separated by space ' '
|
|
e.g. PORT_RANGES=\"8000:8100 8200:8300\"
|
|
"
|
|
|
|
for port_range in $PORT_RANGES; do
|
|
scan_ports $port_range
|
|
done
|
|
|
|
if [[ $PROCESS_DETECTED == true ]]; then
|
|
if [[ $SHOULD_FAIL_BUILD == true ]]; then
|
|
echo -e "\n\nWill fail build as hanging processes have been detected"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo -e "\n\nNo processes have been detected on $PORT_RANGES port range"
|
|
fi
|
|
|
|
exit 0
|