Skip to content

Commit d79b64f

Browse files
authored
Add additional occupied port checking (#280)
1 parent ceca6d1 commit d79b64f

File tree

1 file changed

+27
-22
lines changed

1 file changed

+27
-22
lines changed

Diff for: jenkins/helper/port.sh

+27-22
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,27 @@ find $PORTDIR -type f -cmin +$TIMEOUT -exec rm "{}" ";"
2626

2727
rm -f ./ports
2828

29+
function isFree
30+
{
31+
return $(sudo netstat -tulpn | grep LISTEN | awk '{print $4}' | grep -c ':'$1'$')
32+
}
33+
2934
case "$1" in
3035

3136
"--cluster")
3237
shift
33-
while ! ((set -o noclobber ; date > $PORTDIR/$port && echo "$PORTDIR/$port" > ./ports &&\
34-
date > $PORTDIR/`expr $port + 1` && echo "$PORTDIR/`expr $port + 1`" >> ./ports &&\
35-
date > $PORTDIR/`expr $port + 2` && echo "$PORTDIR/`expr $port + 2`" >> ./ports &&\
36-
date > $PORTDIR/`expr $port + 3` && echo "$PORTDIR/`expr $port + 3`" >> ./ports &&\
37-
date > $PORTDIR/`expr $port + 10` && echo "$PORTDIR/`expr $port + 10`" >> ./ports &&\
38-
date > $PORTDIR/`expr $port + 11` && echo "$PORTDIR/`expr $port + 11`" >> ./ports &&\
39-
date > $PORTDIR/`expr $port + 12` && echo "$PORTDIR/`expr $port + 12`" >> ./ports &&\
40-
date > $PORTDIR/`expr $port + 13` && echo "$PORTDIR/`expr $port + 13`" >> ./ports &&\
41-
date > $PORTDIR/`expr $port + 20` && echo "$PORTDIR/`expr $port + 20`" >> ./ports &&\
42-
date > $PORTDIR/`expr $port + 21` && echo "$PORTDIR/`expr $port + 21`" >> ./ports &&\
43-
date > $PORTDIR/`expr $port + 22` && echo "$PORTDIR/`expr $port + 22`" >> ./ports &&\
44-
date > $PORTDIR/`expr $port + 23` && echo "$PORTDIR/`expr $port + 23`" >> ./ports) 2> /dev/null)
38+
while ! ((set -o noclobber ; date > $PORTDIR/$port && isFree $port && echo "$PORTDIR/$port" > ./ports &&\
39+
date > $PORTDIR/`expr $port + 1` && isFree `expr $port + 1` && echo "$PORTDIR/`expr $port + 1`" >> ./ports &&\
40+
date > $PORTDIR/`expr $port + 2` && isFree `expr $port + 2` echo "$PORTDIR/`expr $port + 2`" >> ./ports &&\
41+
date > $PORTDIR/`expr $port + 3` && isFree `expr $port + 3` echo "$PORTDIR/`expr $port + 3`" >> ./ports &&\
42+
date > $PORTDIR/`expr $port + 10` && isFree `expr $port + 10` echo "$PORTDIR/`expr $port + 10`" >> ./ports &&\
43+
date > $PORTDIR/`expr $port + 11` && isFree `expr $port + 11` echo "$PORTDIR/`expr $port + 11`" >> ./ports &&\
44+
date > $PORTDIR/`expr $port + 12` && isFree `expr $port + 12` echo "$PORTDIR/`expr $port + 12`" >> ./ports &&\
45+
date > $PORTDIR/`expr $port + 13` && isFree `expr $port + 13` echo "$PORTDIR/`expr $port + 13`" >> ./ports &&\
46+
date > $PORTDIR/`expr $port + 20` && isFree `expr $port + 20` echo "$PORTDIR/`expr $port + 20`" >> ./ports &&\
47+
date > $PORTDIR/`expr $port + 21` && isFree `expr $port + 21` echo "$PORTDIR/`expr $port + 21`" >> ./ports &&\
48+
date > $PORTDIR/`expr $port + 22` && isFree `expr $port + 22` echo "$PORTDIR/`expr $port + 22`" >> ./ports &&\
49+
date > $PORTDIR/`expr $port + 23` && isFree `expr $port + 23` echo "$PORTDIR/`expr $port + 23`" >> ./ports) 2> /dev/null)
4550
do
4651
[ -e "./ports" ] && while read -r line; do rm -f "$line"; done < ./ports
4752
rm -f ./ports
@@ -55,15 +60,15 @@ case "$1" in
5560
5661
"--activefailover")
5762
shift
58-
while ! ((set -o noclobber ; date > $PORTDIR/$port && echo "$PORTDIR/$port" > ./ports &&\
59-
date > $PORTDIR/`expr $port + 1` && echo "$PORTDIR/`expr $port + 1`" >> ./ports &&\
60-
date > $PORTDIR/`expr $port + 2` && echo "$PORTDIR/`expr $port + 2`" >> ./ports &&\
61-
date > $PORTDIR/`expr $port + 10` && echo "$PORTDIR/`expr $port + 10`" >> ./ports &&\
62-
date > $PORTDIR/`expr $port + 11` && echo "$PORTDIR/`expr $port + 11`" >> ./ports &&\
63-
date > $PORTDIR/`expr $port + 12` && echo "$PORTDIR/`expr $port + 12`" >> ./ports &&\
64-
date > $PORTDIR/`expr $port + 20` && echo "$PORTDIR/`expr $port + 20`" >> ./ports &&\
65-
date > $PORTDIR/`expr $port + 21` && echo "$PORTDIR/`expr $port + 21`" >> ./ports &&\
66-
date > $PORTDIR/`expr $port + 22` && echo "$PORTDIR/`expr $port + 22`" >> ./ports) 2> /dev/null)
63+
while ! ((set -o noclobber ; date > $PORTDIR/$port && isFree $port && echo "$PORTDIR/$port" > ./ports &&\
64+
date > $PORTDIR/`expr $port + 1` && isFree `expr $port + 1` && echo "$PORTDIR/`expr $port + 1`" >> ./ports &&\
65+
date > $PORTDIR/`expr $port + 2` && isFree `expr $port + 2` && echo "$PORTDIR/`expr $port + 2`" >> ./ports &&\
66+
date > $PORTDIR/`expr $port + 10` && isFree `expr $port + 10` && echo "$PORTDIR/`expr $port + 10`" >> ./ports &&\
67+
date > $PORTDIR/`expr $port + 11` && isFree `expr $port + 11` && echo "$PORTDIR/`expr $port + 11`" >> ./ports &&\
68+
date > $PORTDIR/`expr $port + 12` && isFree `expr $port + 12` && echo "$PORTDIR/`expr $port + 12`" >> ./ports &&\
69+
date > $PORTDIR/`expr $port + 20` && isFree `expr $port + 20` && echo "$PORTDIR/`expr $port + 20`" >> ./ports &&\
70+
date > $PORTDIR/`expr $port + 21` && isFree `expr $port + 21` && echo "$PORTDIR/`expr $port + 21`" >> ./ports &&\
71+
date > $PORTDIR/`expr $port + 22` && isFree `expr $port + 22` && echo "$PORTDIR/`expr $port + 22`" >> ./ports) 2> /dev/null)
6772
do
6873
[ -e "./ports" ] && while read -r line; do rm -f "$line"; done < ./ports
6974
rm -f ./ports
@@ -76,7 +81,7 @@ case "$1" in
7681
;;
7782
7883
"--singleserver")
79-
while ! ((set -o noclobber ; date > $PORTDIR/$port && echo "$PORTDIR/$port" > ./ports &&\
84+
while ! ((set -o noclobber ; date > $PORTDIR/$port && isFree $port && echo "$PORTDIR/$port" > ./ports &&\
8085
date > $PORTDIR/`expr $port + 1` && echo "$PORTDIR/`expr $port + 1`" >> ./ports) 2> /dev/null)
8186
do
8287
[ -e "./ports" ] && while read -r line; do rm -f "$line"; done < ./ports

0 commit comments

Comments
 (0)