Linux操作系统在网络管理中的表现非常出色,因此在企业、云计算这些领域得到广泛应用。但是,在远程连接Linux服务器时,有时会遇到突然断开连接的情况,如果不能及时处理,可能会造成不可预测的后果。本文将介绍几种处理Linux远程断开连接的方法,旨在帮助广大管理员更好的管理和维护服务器。
创新互联公司专注于子长企业网站建设,成都响应式网站建设,商城系统网站开发。子长网站建设公司,为子长等地区提供建站服务。全流程定制网站,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
一、SSH超时断开连接
SSH连接是Linux系统中最常用的远程连接方式,但是经常会出现远程连接突然断开的情况,这种现象多半是因为超时问题导致的。针对这种问题,可以通过修改SSH服务端的配置文件/etc/ssh/sshd_config来解决。
1. 打开/etc/ssh/sshd_config配置文件
vim /etc/ssh/sshd_config
2. 修改ClientAliveInterval和ClientAliveCountMax参数值
ClientAliveInterval参数表示客户端发送心跳包的间隔时间,单位为秒。如果一段时间内没有收到任何响应,就会断开连接。通常情况下,这个值默认为0表示不发送心跳包。修改此参数值可以让服务器检测到客户端是否在活动状态,防止连接因为长时间没有活动而被主动断开。
ClientAliveCountMax参数表示SSH服务器发送心跳消息的次数。如果次数达到设定值就会主动断开连接。如果你只修改了ClientAliveInterval值,而没有修改ClientAliveCountMax值,那么就会出现SSH连接虽然没超时,但是连接已经被断开了的情况。
3.重启SSH服务
修改配置文件后,需要重新启动SSH服务使之生效。
systemctl restart sshd
二、使用Tmux断开连接
Tmux是一个终端多会话管理工具,它可以在一个终端窗口或多个终端窗口中创建多个会话。如果在tmux会话中,连接突然中断了,你可以用tmux中的detach命令来让你的终端会话在后台运行,以避免中断。
1. 使用Tmux创建一个终端窗口
在Linux中使用tmux命令创建一个新的终端窗口,非常简单:
tmux new -s
也可以使用以下的命令,指定一个会话名字:
tmux new-session -s
2. 分离tmux会话
当您的tmux会话在运行时断开连接时,您需要分离这个会话以保持其在后台运行。可以按Ctrl+b和d键组合分离tmux会话。
3. 重新连接到tmux会话
当您的tmux会话分离时,您可以使用以下命令重新连接会话:
tmux attach-session -t
三、使用Screen断开连接
Screen与tmux有些相似,它也是一个终端管理工具,可以将多个命令行会话连接在一起,从而将它们作为单个程序运行。如果您在使用Screen时,连接突然中断了,您仍然可以重新连接到它。
1. 使用Screen创建一个新的终端窗口
在Linux中使用screen命令创建一个新的终端窗口,非常简单:
screen -S
2. 退出Screen会话
当您的Screen会话运行时,您可以键入Ctrl-a和d键组合来分离终端,并在后台运行。
3. 重新连接到Screen会话
当您的Screen会话分离时,您仍然可以重新连接到它。使用以下命令恢复之前的Screen会话:
screen -r
四、使用nohup持续运行命令
如果你需要在Linux服务器上长时间运行一个命令,例如备份或迁移文件,可以使用nohup来实现,nohup命令的作用是使命令进程长时间在后台运行,即使关闭了终端也不会终止命令。
1. 使用nohup命令运行一个命令
例如,如果您想在Linux服务器上运行一个脚本,您可以使用以下命令:
nohup ./backup.sh &
nohup命令会将执行的内容发送到文件nohup.out中,保留后台运行状态。
2. 使用”jobs”命令查看运行状态
使用”jobs”命令可以查看当前运行的进程的状态。如果nohup命令创建的进程正在运行,你就可以直接在后台操作了。
3. 使用”disown”命令长期运行命令
如果您需要使nohup进程在后台执行并且尝试关闭shell(如通过SSH远程终端)时不会被关闭,您需要使用disown &命令,这会话解除nohup命令与shell的联系使它可以独立执行。
nohup ./backup.sh &
disown %
相关问题拓展阅读:
背景
:工作需要,需要远程控制主机使其断开Xshell后也能一直运行。
关键字
:& ,nohup,脚本挂起。
在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。
键入Ctrl + C,发出SIGINT信号陵世,程序会继续运行
方法一缺斗、输入命令:jobs
方法二:输入命令:ps
fg、bg、jobs、&、nohup、ctrl+z、ctrl+c
命令
加在一个命令的最后,可以把这个命令放到后台执行,如
可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
查看当前有多少在后台运行的命令
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。
将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。
将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。
法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
前台进程的终止:Ctrl+c
如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需伏汪磨要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
关闭中断后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)
如上所示:
nohup 和 & 组合了后台运行程序。
可以输出到 out.log保存程序输出,也可以输出到/dev/null 即空设备,不保存输出。
上面三种方式无论在nohup.out 或test.out都看不到数据结果,这是因为python执行有缓存输出
解决
新的接口接入查看程序
使用&后台运行程序:
结果会输出到终端
使用Ctrl + C发送SIGINT信号,
程序免疫
关闭session发送SIGHUP信号,
程序关闭
使用nohup运行程序:
结果默认会输出到nohup.out
使用Ctrl + C发送SIGINT信号,
程序关闭
关闭session发送SIGHUP信号,
程序免疫
平日线上经常使用nohup和&配合来启动程序:
同时免疫SIGINT和SIGHUP信号
同时,还有一个更佳实践:
不要将信息输出到终端标准输出,标准错误输出,而要用日志组件将信息记录到日志里
nohup和&究竟有啥区别
关于linux 远程断开的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
网页题目:LINUX远程断开连接处理方法分享(linux远程断开)
文章分享:http://www.shufengxianlan.com/qtweb/news42/692.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联