十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
查了资料,这个可能和SSH超时自动断开是一样的,可以修改以下2个配置参数来解决。
创新互联公司主要从事做网站、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务福安,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
1、$TMOUT 系统环境变量
# 用以下命令判断是否是否设置了该参数
echo $TMOUT
# 如果输出空或0表示不超时,大于0的数字n表示n秒没有收入则超时
# 修改方法
vi /etc/profile
# ----------------------------
export TMOUT=900
# ----------------------------
# 将以上900修改为0就是设置不超时
source /etc/profile
# 让配置立即生效
2、sshd 服务配置
cd /etc/ssh
# 查看sshd_config中关于客户端活动状态的配置
grep ClientAlive sshd_config
# 默认配置如下
# ----------------------------
#ClientAliveInterval 0
#ClientAliveCountMax 3
# ----------------------------
# ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送。设置60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了。
# ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开。正常情况下, 客户端不会不响应,使用默认值3即可。
# 备份原配置文件
cp sshd_config sshd_config.bak
# 启用客户端活动检查,每60秒检查一次,3次不活动断开连接
sed -i "s/#ClientAliveInterval 0/ClientAliveInterval 60/g" sshd_config
sed -i "s/#ClientAliveCountMax 3/ClientAliveCountMax 3/g" sshd_config
# 确认修改
grep ClientAlive sshd_config
# 比较配置文件差异
diff sshd_config sshd_config.bak
# 重新加载ssd配置,让配置生效
service sshd reload
对所有用户设置自动注销功能:
首先,以root用户登录系统,输入 vi /etc/profile 命令,编辑profile文件。
查找TMOUT,若没有,则可以在文件最后添加如下语句:
TMOUT=300
export TOMOUT
如果查找到了,直接设置时间。
300表示自动注销的时间为300秒。
编辑好文件后,保存,退出,重新登录,设置生效。
可以使用timeout命令或Timelimit程序。
方法一:使用timeout命令最常见的方法是使用timeout命令来实现此目的,对于那些不知道的人,timeout命令将有效地限制进程的绝对执行时间,timeout命令是GNUcoreutils包的一部分,因此它预先安装在所有GNU/Linux系统中。方法二:使用Timelimit实用程序使用提供的参数执行给定命令,并在给定时间后使用给定信号终止生成的进程,首先,它将通过警告信号,然后在超时后,它将发送终止信号。
判断进程是否存在。示例:
timer=20 #20s定时器
flag=1 #标识进程是否存在
while [ $timer -gt 0 ]
do
sleep 2
ps -aux | grep 进程名 | grep -v grep /dev/null #查询进程
[ $? -ne 0 ] flag=0 break #进程不存在了就退出循环
let timer-=1
done
[ $flag -eq 1 ] kill -9 $(ps -aux | awk '/ bash$/{print $1}')
一、有个工具叫screen,可以虚拟终端,通过命令screen -S name 来创建一个名为name的虚拟终端,这样即使终端超时自动断开,再登录到系统之后只需要screen -r name就可以继续连接到刚才创建的虚拟终端,且所有的操作都会继续不会中断。
二、远程工具可以进行相关的设置,比如secretcrt这个工具就可以设置每10秒操作一下,这样就不会中断。