使用移动云服务器运行jar包时,客户端连接时常断连
解决
修改Linux服务器配置
- 修改sshd_config配置文件
vi /etc/ssh/sshd_config
在文件中找到
#ClientAliveInterval 0
#ClientAliveCountMax 3
修改为
# 服务端每隔多少秒向客户端发送一个心跳数据
ClientAliveInterval 30
# 客户端多少次没有相应,服务器自动断掉连接
ClientAliveCountMax 86400
- 重启ssh服务
service sshd restart
将jar包以后台模式运行
直接以jar包运行
- 锁定ssh窗口的运行方式
# 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
# 服务器断开的一个原因,可能是以这种模式运行,当关闭窗口,服务就断开了
java -jar xxxxx.jar
- 不锁定ssh窗口的运行方式
# 当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
java -jar xxxxx.jar &
- 后台不挂断的运行方式
# 不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
# 这个运行方式不会影响后台运行的进程
nohup java -jar xxxxx.jar &
- 后台不挂断运行,指定输出日志文件
# 指定输出日志文件,意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
# out 为输出日志文件的文件名,可自定义
nohup java -jar xxxxx.jar > out.log
由上可知,使用后台不挂断的运行方式
nohup java -jar xxxxx.jar &
运行之后,查看jar包的进程
ps -ef|grep xxxxx.jar
# 或者
ps aux|grep xxxxx.jar
重启服务时,需要先关闭之前启动的服务,用上述查看进程命令获取进程号,执行以下命令:
kill -9 [进程号]