大致经过就是,我买了一个云主机,然后使用ssh进行连接的时候,运行了一个很长时间的编译命令,但是每次没编译结束就停了,搞的我很是烦,通过报错语句可以看到是超时问题timeout。那么需要外面对ssh命令连接的配置进行更改,主要就是在服务器下/etc/ssh/ssh_config文件最后一行加上ClientAliveInterval 3600 然后重启服务器(远程主机重启要谨慎),然后就可以啦。其实就是配置了一些客户端连接生存的间隔时间,也就是我们不在终端进行输入命令的话,这个客户端连接可以保持多久,那么单位是秒s
一 、场景复原
二 、解决办法
【1】修改配置
【服务端】
【/etc/ssh/ssh_config】一些配置
# server每隔一小时给客户端发送一次保活信息包给客户端
ClientAliveInterval 3600
# server端发出的请求客户端没有回应的次数达到86400次的时候就断开连接,正常情况下客户端都会相应
ClientAliveCountMax 86400
【客户端】
Options->Session Options->Terminal->Anti-idle->勾选Send protocol NO-OP
(中文版:选项->会话选项->终端->反空闲->发送协议NO-OP)
后面的设置时间默认的是60秒,只要小于自动断开连接的时限就可以了
大功告成
【2】后台执行命令
- 转变思路,后台执行也可以。嘻嘻嘻第二种方法啦
- 可以在命令后面加上& 实现后台运行。例如 sh test.sh &