新聞中心
Linux操作系統(tǒng)在網(wǎng)絡(luò)管理中的表現(xiàn)非常出色,因此在企業(yè)、云計(jì)算這些領(lǐng)域得到廣泛應(yīng)用。但是,在遠(yuǎn)程連接Linux服務(wù)器時(shí),有時(shí)會(huì)遇到突然斷開(kāi)連接的情況,如果不能及時(shí)處理,可能會(huì)造成不可預(yù)測(cè)的后果。本文將介紹幾種處理Linux遠(yuǎn)程斷開(kāi)連接的方法,旨在幫助廣大管理員更好的管理和維護(hù)服務(wù)器。

創(chuàng)新互聯(lián)公司專(zhuān)注于子長(zhǎng)企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。子長(zhǎng)網(wǎng)站建設(shè)公司,為子長(zhǎng)等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
一、SSH超時(shí)斷開(kāi)連接
SSH連接是Linux系統(tǒng)中最常用的遠(yuǎn)程連接方式,但是經(jīng)常會(huì)出現(xiàn)遠(yuǎn)程連接突然斷開(kāi)的情況,這種現(xiàn)象多半是因?yàn)槌瑫r(shí)問(wèn)題導(dǎo)致的。針對(duì)這種問(wèn)題,可以通過(guò)修改SSH服務(wù)端的配置文件/etc/ssh/sshd_config來(lái)解決。
1. 打開(kāi)/etc/ssh/sshd_config配置文件
vim /etc/ssh/sshd_config
2. 修改ClientAliveInterval和ClientAliveCountMax參數(shù)值
ClientAliveInterval參數(shù)表示客戶(hù)端發(fā)送心跳包的間隔時(shí)間,單位為秒。如果一段時(shí)間內(nèi)沒(méi)有收到任何響應(yīng),就會(huì)斷開(kāi)連接。通常情況下,這個(gè)值默認(rèn)為0表示不發(fā)送心跳包。修改此參數(shù)值可以讓服務(wù)器檢測(cè)到客戶(hù)端是否在活動(dòng)狀態(tài),防止連接因?yàn)殚L(zhǎng)時(shí)間沒(méi)有活動(dòng)而被主動(dòng)斷開(kāi)。
ClientAliveCountMax參數(shù)表示SSH服務(wù)器發(fā)送心跳消息的次數(shù)。如果次數(shù)達(dá)到設(shè)定值就會(huì)主動(dòng)斷開(kāi)連接。如果你只修改了ClientAliveInterval值,而沒(méi)有修改ClientAliveCountMax值,那么就會(huì)出現(xiàn)SSH連接雖然沒(méi)超時(shí),但是連接已經(jīng)被斷開(kāi)了的情況。
3.重啟SSH服務(wù)
修改配置文件后,需要重新啟動(dòng)SSH服務(wù)使之生效。
systemctl restart sshd
二、使用Tmux斷開(kāi)連接
Tmux是一個(gè)終端多會(huì)話(huà)管理工具,它可以在一個(gè)終端窗口或多個(gè)終端窗口中創(chuàng)建多個(gè)會(huì)話(huà)。如果在tmux會(huì)話(huà)中,連接突然中斷了,你可以用tmux中的detach命令來(lái)讓你的終端會(huì)話(huà)在后臺(tái)運(yùn)行,以避免中斷。
1. 使用Tmux創(chuàng)建一個(gè)終端窗口
在Linux中使用tmux命令創(chuàng)建一個(gè)新的終端窗口,非常簡(jiǎn)單:
tmux new -s
也可以使用以下的命令,指定一個(gè)會(huì)話(huà)名字:
tmux new-session -s
2. 分離tmux會(huì)話(huà)
當(dāng)您的tmux會(huì)話(huà)在運(yùn)行時(shí)斷開(kāi)連接時(shí),您需要分離這個(gè)會(huì)話(huà)以保持其在后臺(tái)運(yùn)行??梢园碈trl+b和d鍵組合分離tmux會(huì)話(huà)。
3. 重新連接到tmux會(huì)話(huà)
當(dāng)您的tmux會(huì)話(huà)分離時(shí),您可以使用以下命令重新連接會(huì)話(huà):
tmux attach-session -t
三、使用Screen斷開(kāi)連接
Screen與tmux有些相似,它也是一個(gè)終端管理工具,可以將多個(gè)命令行會(huì)話(huà)連接在一起,從而將它們作為單個(gè)程序運(yùn)行。如果您在使用Screen時(shí),連接突然中斷了,您仍然可以重新連接到它。
1. 使用Screen創(chuàng)建一個(gè)新的終端窗口
在Linux中使用screen命令創(chuàng)建一個(gè)新的終端窗口,非常簡(jiǎn)單:
screen -S
2. 退出Screen會(huì)話(huà)
當(dāng)您的Screen會(huì)話(huà)運(yùn)行時(shí),您可以鍵入Ctrl-a和d鍵組合來(lái)分離終端,并在后臺(tái)運(yùn)行。
3. 重新連接到Screen會(huì)話(huà)
當(dāng)您的Screen會(huì)話(huà)分離時(shí),您仍然可以重新連接到它。使用以下命令恢復(fù)之前的Screen會(huì)話(huà):
screen -r
四、使用nohup持續(xù)運(yùn)行命令
如果你需要在Linux服務(wù)器上長(zhǎng)時(shí)間運(yùn)行一個(gè)命令,例如備份或遷移文件,可以使用nohup來(lái)實(shí)現(xiàn),nohup命令的作用是使命令進(jìn)程長(zhǎng)時(shí)間在后臺(tái)運(yùn)行,即使關(guān)閉了終端也不會(huì)終止命令。
1. 使用nohup命令運(yùn)行一個(gè)命令
例如,如果您想在Linux服務(wù)器上運(yùn)行一個(gè)腳本,您可以使用以下命令:
nohup ./backup.sh &
nohup命令會(huì)將執(zhí)行的內(nèi)容發(fā)送到文件nohup.out中,保留后臺(tái)運(yùn)行狀態(tài)。
2. 使用”jobs”命令查看運(yùn)行狀態(tài)
使用”jobs”命令可以查看當(dāng)前運(yùn)行的進(jìn)程的狀態(tài)。如果nohup命令創(chuàng)建的進(jìn)程正在運(yùn)行,你就可以直接在后臺(tái)操作了。
3. 使用”disown”命令長(zhǎng)期運(yùn)行命令
如果您需要使nohup進(jìn)程在后臺(tái)執(zhí)行并且嘗試關(guān)閉shell(如通過(guò)SSH遠(yuǎn)程終端)時(shí)不會(huì)被關(guān)閉,您需要使用disown &命令,這會(huì)話(huà)解除nohup命令與shell的聯(lián)系使它可以獨(dú)立執(zhí)行。
nohup ./backup.sh &
disown %
相關(guān)問(wèn)題拓展閱讀:
- linux 遠(yuǎn)程主機(jī)后臺(tái)運(yùn)行任務(wù) 掛起腳本
linux 遠(yuǎn)程主機(jī)后臺(tái)運(yùn)行任務(wù) 掛起腳本
背景
:工作需要,需要遠(yuǎn)程控制主機(jī)使其斷開(kāi)Xshell后也能一直運(yùn)行。
關(guān)鍵字
:& ,nohup,腳本掛起。
在應(yīng)用Unix/Linux時(shí),我們一般想讓某個(gè)程序在后臺(tái)運(yùn)行,于是我們將常會(huì)用 & 在程序結(jié)尾來(lái)讓程序自動(dòng)運(yùn)行。
鍵入Ctrl + C,發(fā)出SIGINT信號(hào)陵世,程序會(huì)繼續(xù)運(yùn)行
方法一缺斗、輸入命令:jobs
方法二:輸入命令:ps
fg、bg、jobs、&、nohup、ctrl+z、ctrl+c
命令
加在一個(gè)命令的最后,可以把這個(gè)命令放到后臺(tái)執(zhí)行,如
可以將一個(gè)正在前臺(tái)執(zhí)行的命令放到后臺(tái),并且處于暫停狀態(tài)。
查看當(dāng)前有多少在后臺(tái)運(yùn)行的命令
jobs -l選項(xiàng)可顯示所有任務(wù)的PID,jobs的狀態(tài)可以是running, stopped, Terminated。但是如果任務(wù)被終止了(kill),shell 從當(dāng)前的shell環(huán)境已知的列表中刪除任務(wù)的進(jìn)程標(biāo)識(shí)。
將后臺(tái)中的命令調(diào)至前臺(tái)繼續(xù)運(yùn)行。如果后臺(tái)中有多個(gè)命令,可以用fg %jobnumber(是命令編號(hào),不是進(jìn)程號(hào))將選中的命令調(diào)出。
將一個(gè)在后臺(tái)暫停的命令,變成在后臺(tái)繼續(xù)執(zhí)行。如果后臺(tái)中有多個(gè)命令,可以用bg %jobnumber將選中的命令調(diào)出。
法子1:通過(guò)jobs命令查看job號(hào)(假設(shè)為num),然后執(zhí)行kill %num
法子2:通過(guò)ps命令查看job的進(jìn)程號(hào)(PID,假設(shè)為pid),然后執(zhí)行kill pid
前臺(tái)進(jìn)程的終止:Ctrl+c
如果讓程序始終在后臺(tái)執(zhí)行,即使關(guān)閉當(dāng)前的終端也執(zhí)行(之前的&做不到),這時(shí)候需伏汪磨要nohup。該命令可以在你退出帳戶(hù)/關(guān)閉終端之后繼續(xù)運(yùn)行相應(yīng)的進(jìn)程。
關(guān)閉中斷后,在另一個(gè)終端jobs已經(jīng)無(wú)法看到后臺(tái)跑得程序了,此時(shí)利用ps(進(jìn)程查看命令)
如上所示:
nohup 和 & 組合了后臺(tái)運(yùn)行程序。
可以輸出到 out.log保存程序輸出,也可以輸出到/dev/null 即空設(shè)備,不保存輸出。
上面三種方式無(wú)論在nohup.out 或test.out都看不到數(shù)據(jù)結(jié)果,這是因?yàn)閜ython執(zhí)行有緩存輸出
解決
新的接口接入查看程序
使用&后臺(tái)運(yùn)行程序:
結(jié)果會(huì)輸出到終端
使用Ctrl + C發(fā)送SIGINT信號(hào),
程序免疫
關(guān)閉session發(fā)送SIGHUP信號(hào),
程序關(guān)閉
使用nohup運(yùn)行程序:
結(jié)果默認(rèn)會(huì)輸出到nohup.out
使用Ctrl + C發(fā)送SIGINT信號(hào),
程序關(guān)閉
關(guān)閉session發(fā)送SIGHUP信號(hào),
程序免疫
平日線(xiàn)上經(jīng)常使用nohup和&配合來(lái)啟動(dòng)程序:
同時(shí)免疫SIGINT和SIGHUP信號(hào)
同時(shí),還有一個(gè)更佳實(shí)踐:
不要將信息輸出到終端標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)錯(cuò)誤輸出,而要用日志組件將信息記錄到日志里
nohup和&究竟有啥區(qū)別
關(guān)于linux 遠(yuǎn)程斷開(kāi)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
新聞名稱(chēng):LINUX遠(yuǎn)程斷開(kāi)連接處理方法分享(linux遠(yuǎn)程斷開(kāi))
標(biāo)題URL:http://fisionsoft.com.cn/article/dhdcsie.html


咨詢(xún)
建站咨詢(xún)
