linux启动jar包脚本之远程端口占用报错

PATH=$PATH:$JAVA_HOME/bin
NAME=$1
VERSION=$2
PORT=$3
echo $NAME
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
for id in $ID
do
kill -9 $id
echo "killed $id"
done
nohup java -server -Xms600m -Xmx600m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -Xverify:none -XX:+DisableExplicitGC 
-Djava.awt.headless=true -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=$PORT,suspend=n -Duser.timezone=Asia/Shanghai 
-Denv=fat -Dapollo.cluster=vmfat03 -jar $NAME-$VERSION.jar  > $NAME.log 2>&1 &

 脚本如图,很通用的一个,但是如果我启动时加上了远程端口的话,下次再运行脚本就会报错

ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]

远程端口被占用,可是我明显已经把这个进程kill掉了,使用命令查询也是已经杀掉。

经过猜想,会不会是kill掉进程之后远程连接端口关闭还需要一点时间才彻底关闭,但是这时候你又用同样的端口号去开启远程debug模式,这样就会出现上图错误,于是我就在脚本的done后面sleep 1。让他等待1s。

结果证明猜想没错,之后就没报这种错误了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值