第一步,在本地把 springBoot 项目打包

这里以 idea 开发工具为例

springboot实现tcp链接等待一段时间后返回 springboot tcp服务器_linux

  1. 先运行clean。目的,如果之前编译过,可以清除上次编译在项目中生成的文件(target目录下的所有文件)
  2. 运行compile 。目的,可以提前发现项目中存在的问题,及时改正。在内网中常见 问题就是 pom.xml 文件中的 jar包下载错误。如果有错误,参考下面解决方案,没有直接忽略即可。

解决方案:

把项目中下载失败的jar包,重新上传到nexus私服仓库中

然后先清除本地仓库的 .lastUpdated 文件, 不然即使上传了jar包,也下载不下来

下面是清除文件的代码。新建文本文件,粘贴内容,后缀名改为 .bat,双击运行即可。

@echo off rem 这里写你的仓库路径 set REPOSITORY_PATH=你的本地仓库路径 rem 正在搜索... for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do ( del /s /q %%i ) rem 搜索完毕 pause

 

3. 运行打包命令

在项目终端运行下面命令

mvn -Dmaven.test.skip=true -U clean install

springboot实现tcp链接等待一段时间后返回 springboot tcp服务器_linux_02

第二步,编写运行脚本

启动脚本

#!/bin/bash
echo Starting application 

nohup java -jar -Xms64m -Xmx1024m xxxxx.jar >xxxxx.log &
tail -f xxxxx.log

关闭脚本

#!/bin/bash
PID=$(ps -ef | grep xxxxx.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo xxxxx is already stopped
else
    echo kill $PID
    kill $PID
fi

第三步,上传jar包和脚本到Linux服务器

这里用到ScureCRT连接工具,包含SecureFX,支持界面化上传文件到服务器

springboot实现tcp链接等待一段时间后返回 springboot tcp服务器_ssh_03

下载链接 :

第四步,脚本授权

sh xxx.sh 是不需要有执行权限

./xxx.sh 是需要有执行权限的,可以通过 chmod +x xxx.sh 赋予权限

第五步,开放服务端口

  1. 查看想开的端口是否已开: firewall-cmd --query-port=端口号/tcp      提示 yes,表示开启;no表示未开启。
  2. 添加指定需要开放的端口: firewall-cmd --add-port=端口号/tcp --permanent
  3. 重载入添加的端口: firewall-cmd --reload
  4. 查询指定端口是否开启成功: firewall-cmd --query-port=端口号/tcp

移除指定端口: firewall-cmd --permanent --remove-port=端口号/tcp 

第六步,启动服务

cd 进去jar包所在目录

./脚本名   回车 或者

sh 脚本名   回车

第八步,验证端口是否正常

Linux 使用

lsof 命令来查看某一端口是否开放。查看端口可以这样来使用,我就以80端口为例:
lsof -i:80

netstat -ntulp | grep 3306 //查看所有3306端口使用情况

windows 使用

telnet ip 端口号

方式测试远程主机端口是否打开

例 telnet 192.168.137.128 8085

第九步,杀掉进程

ps ef | grep jar包名称.jar

kill -9 进程号